xmlread
Leer documentos XML y devolver un nodo Document Object Model
Descripción
DOMnode = xmlread( lee el archivo XML especificado y devuelve un objeto de documento Xerces-J de Apache® que representa una versión analizada del archivo XML. filename)
DOMnode = xmlread( especifica las opciones utilizando uno o más argumentos de par nombre-valor. Por ejemplo, puede especificar el motor de procesamiento de XML con filename,Name=Value)XMLEngine.
Ejemplos
Examine el contenido de un archivo XML de muestra y, después, lea el archivo XML en un nodo Document Object Model (DOM).
Muestre el contenido del archivo sample.xml.
sampleXMLfile = 'sample.xml';
type(sampleXMLfile)<productinfo> <matlabrelease>R2012a</matlabrelease> <name>Example Manager</name> <type>internal</type> <icon>ApplicationIcon.DEMOS</icon> <list> <listitem> <label>Example Manager</label> <callback>com.mathworks.xwidgets.ExampleManager.showViewer </callback> <icon>ApplicationIcon.DEMOS</icon> </listitem> </list> </productinfo>
Lea el archivo XML en un nodo DOM.
DOMnode = xmlread(sampleXMLfile);
Cree una función de análisis para leer un archivo XML en una estructura de MATLAB® y, después, lea un archivo XML de muestra en el área de trabajo de MATLAB.
Para crear la función parseXML, copie y pegue este código en un archivo m parseXML.m. La función parseXML analiza los datos de un archivo XML en un arreglo de estructuras de MATLAB con los campos Name, Attributes, Data y Children.
function theStruct = parseXML(filename) % PARSEXML Convert XML file to a MATLAB structure. try tree = xmlread(filename); catch error('Failed to read XML file %s.',filename); end % Recurse over child nodes. This could run into problems % with very deeply nested trees. try theStruct = parseChildNodes(tree); catch error('Unable to parse XML file %s.',filename); end % ----- Local function PARSECHILDNODES ----- function children = parseChildNodes(theNode) % Recurse over node children. children = []; if theNode.hasChildNodes childNodes = theNode.getChildNodes; numChildNodes = childNodes.getLength; allocCell = cell(1, numChildNodes); children = struct( ... 'Name', allocCell, 'Attributes', allocCell, ... 'Data', allocCell, 'Children', allocCell); for count = 1:numChildNodes theChild = childNodes.item(count-1); children(count) = makeStructFromNode(theChild); end end % ----- Local function MAKESTRUCTFROMNODE ----- function nodeStruct = makeStructFromNode(theNode) % Create structure of node info. nodeStruct = struct( ... 'Name', char(theNode.getNodeName), ... 'Attributes', parseAttributes(theNode), ... 'Data', '', ... 'Children', parseChildNodes(theNode)); if any(strcmp(methods(theNode), 'getData')) nodeStruct.Data = char(theNode.getData); else nodeStruct.Data = ''; end % ----- Local function PARSEATTRIBUTES ----- function attributes = parseAttributes(theNode) % Create attributes structure. attributes = []; if theNode.hasAttributes theAttributes = theNode.getAttributes; numAttributes = theAttributes.getLength; allocCell = cell(1, numAttributes); attributes = struct('Name', allocCell, 'Value', ... allocCell); for count = 1:numAttributes attrib = theAttributes.item(count-1); attributes(count).Name = char(attrib.getName); attributes(count).Value = char(attrib.getValue); end end
Utilice la función parseXML para analizar el archivo de muestra info.xml en una estructura de MATLAB.
sampleXMLfile = 'info.xml';
mlStruct = parseXML(sampleXMLfile)mlStruct = struct with fields:
Name: 'productinfo'
Attributes: [1x2 struct]
Data: ''
Children: [1x13 struct]
Argumentos de entrada
Nombre de archivo, especificado como vector de caracteres o escalar de cadena que contiene el nombre del archivo local o URL. Xerces-J de Apache implementa la API Java® para el procesamiento de XML (JAXP). Utilice funciones JAXP para manipular este objeto de documento. Para obtener más información sobre Xerces-J de Apache, consulte https://xerces.apache.org/xerces-j/apiDocs/.
Tipos de datos: char | string
Argumentos de par nombre-valor
Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.
Ejemplo: d = xmlread(filename,AllowDoctype=false) no permite declaraciones DOCTYPE
Permitir declaraciones DOCTYPE, especificado como 1 (true) o 0 (false) numérico o lógico. Si se especifica como true, xmlread devolverá un nodo DOM de salida para el archivo XML independientemente de las declaraciones DOCTYPE. Si se especifica como false, xmlread produce un error si el archivo XML contiene declaraciones DOCTYPE.
Desde R2026a
Motor de procesamiento de XML, especificado como uno de estos valores:
"jaxp": el valor predeterminado. Procesa el documento XML usando la API de Java para el procesamiento de XML."maxp": procesa el documento XML usando la API de MATLAB para el procesamiento de XML. Cuando se especifica"maxp", el valor devuelto esmatlab.io.xml.dom.Document.
Historial de versiones
Introducido antes de R2006aCuando se lee un archivo XML con la función xmlread, puede especificar el motor de procesamiento de XML como la API de MATLAB para el procesamiento de XML (MAXP) o como la API de Java para el procesamiento de XML (JAXP). Especifique el argumento nombre-valor XMLEngine como "maxp" o "jaxp", respectivamente.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)