ObjetoXmlDocumento
El documento XML es xmlUn objeto del módulo, que representa todo el documento XML y proporciona acceso a todo el documento.
XmlDocument es la raíz de un árbol de documentos y contiene todos los nodos del documento XML completo. El objeto XmlDocument también proporciona las siguientes funciones:
- Cree nodos de elementos, nodos de texto, comentarios, instrucciones de procesamiento, etc.
- Acceder y modificar propiedades de documentos e información relacionada (como comentarios DTD y declaraciones de documentos)
- Analizar documentos XML
El siguiente es un código de muestra que utiliza el objeto XmlDocument para analizar un documento XML:
1
2
3
4
5
6
7
8
9var xml = require('xml');
var fs = require('fs');
var xmlStr = fs.readFile('test.xml');
var xmlDoc = xml.parse(xmlStr);
// get document root node name
var rootName = xmlDoc.documentElement.nodeName;
console.log(`文档根节点名称是 ${rootName}`);
En el código anterior, primero usamos fs
el readFile()
método del módulo para leer un archivo XML y asignar la secuencia del archivo a la variable xmlStr
. Luego usamos [xml](../../module/ifs/xml.md)
el método del módulo para analizar el archivo XML y asignar el objeto parse()
analizado a una variable . Finalmente, usamos el atributo de para obtener el nodo raíz del documento, obtener su nombre de nodo y enviarlo a la consola.XmlDocument
xmlDoc
xmlDoc
documentElement
Dado que XmlDocument es la entrada a todo el documento XML, podemos obtener y modificar información relacionada con el documento a través de él. Por ejemplo, podemos obtener y modificar la versión XML y los atributos independientes del documento mediante xmlDoc.xmlVersion
y respectivamente. xmlDoc.xmlStandalone
También podemos xmlDoc.createProcessingInstruction()
crear nuevos nodos de instrucciones de procesamiento a través del método.
El objeto XmlDocument es un tipo muy potente que nos proporciona una gran comodidad para procesar y analizar archivos XML.
relación de herencia
Constructor
XmlDocument
Construir un objeto XmlDocument
1new XmlDocument(String type = "text/xml");
Parámetros de llamada:
- type: Cadena, especifica el tipo de objeto de documento, el valor predeterminado es "texto/xml", si necesita procesar html, debe especificar "text/html"
propiedades de miembros
inputEncoding
Cadena, devuelve la codificación utilizada para el documento (al analizar)
1readonly String XmlDocument.inputEncoding;
xmlStandalone
Booleano, establece o devuelve si el documento es independiente
1Boolean XmlDocument.xmlStandalone;
xmlVersion
Cadena, establece o devuelve la versión XML del documento.
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, devuelve la Declaración de Tipo de Documento relacionada con el documento
1readonly XmlDocumentType XmlDocument.doctype;
Para documentos XML sin DTD, se devuelve nulo. Esta propiedad proporcionaXmlDocumentTypeAcceso directo al objeto (un nodo secundario de XmlDocument).
documentElement
XmlElement, devuelve el nodo raíz del documento
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, devuelve el nodo principal del documento HTML, solo válido en modo html
1readonly XmlElement XmlDocument.head;
title
Cadena, devuelve el contenido del nodo de título del documento HTML, solo válido en modo html
1readonly String XmlDocument.title;
body
XmlElement, devuelve el nodo del cuerpo del documento HTML, solo válido en modo html
1readonly XmlElement XmlDocument.body;
nodeType
Entero, devuelve el tipo de nodo del nodo.
1readonly Integer XmlDocument.nodeType;
El tipo de nodo de diferentes objetos devolverá valores diferentes:
- XmlElement: ELEMENT_NODE(1)
- XmlAttr:ATTRIBUTE_NODE(2)
- XmlText: TEXTO_NODO(3)
- XmlCDATASection: CDATA_SECTION_NODE(4)
- XmlProcessingInstruction: PROCESSING_INSTRUCTION_NODE(7)
- XmlComment:COMMENT_NODE(8)
- XmlDocument: DOCUMENT_NODE(9)
- XmlDocumentType: DOCUMENT_TYPE_NODE(10)
nodeName
String, devuelve el nombre del nodo, según su tipo
1readonly String XmlDocument.nodeName;
El nombre de nodo de diferentes objetos devolverá valores diferentes:
- XmlElement:nombre del elemento
- XmlAttr: Nombre del Atributo
- XmlText: #texto
- XmlCDATASection: #sección-cdata
- XmlProcessingInstruction: Devuelve el objetivo objetivo especificado
- XmlComment: #comentario
- XmlDocument: #documento
- XmlDocumentType: nombre del tipo de documento
nodeValue
String, devuelve el nombre del nodo, según su tipo
1String XmlDocument.nodeValue;
El nombre de nodo de diferentes objetos devolverá valores diferentes:
- XmlElement: nulo
- XmlAttr: valor de atributo
- XmlText: el contenido del nodo
- XmlCDATASection: el contenido del nodo
- XmlProcessingInstruction: Devuelve los datos de contenido especificados
- XmlComment: texto de anotación
- XmlDocument: nulo
- XmlDocumentType: nulo
ownerDocument
XmlDocument, devuelve el elemento raíz del nodo (objeto XmlDocument)
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, puede devolver el nodo padre de un nodo
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, devuelve la lista de nodos secundarios del nodo especificado
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, devuelve la lista de nodos de los nodos de elementos secundarios del nodo especificado.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, devuelve el primer nodo hijo del nodo
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, devuelve el último nodo hijo del nodo
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, devuelve el nodo inmediatamente anterior a un nodo (en el mismo nivel de árbol). Si no existe tal nodo, esta propiedad devuelve nulo.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode, devuelve el nodo inmediatamente después de un elemento (en el mismo nivel de árbol). Si no existe tal nodo, el atributo devuelve nulo.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, devuelve el primer nodo elemento hijo del nodo
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, devuelve el último nodo del elemento hijo del nodo
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, devuelve el nodo del elemento inmediatamente anterior a un nodo (en el mismo nivel de árbol). Si no existe tal nodo, esta propiedad devuelve nulo.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, devuelve el nodo del elemento inmediatamente después de un elemento (en el mismo nivel de árbol). Si no existe tal nodo, el atributo devuelve nulo.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
Cadena, consulta y establece el texto del elemento seleccionado. Al realizar la consulta, devuelve los valores de todos los nodos de texto dentro del nodo del elemento; al configurar, elimina todos los nodos secundarios y los reemplaza con un solo nodo de texto.
1String XmlDocument.textContent;
función miembro
load
El documento se compone analizando una cadena XML/HTML. No se admite el multilingüismo.
1XmlDocument.load(String source);
Parámetros de llamada:
- source: Cadena, el texto XML/HTML que se va a analizar, según el tipo cuando se creó el documento
El documento se compone analizando una cadena binaria XML/HTML y se convierte automáticamente según el idioma.
1XmlDocument.load(Buffer source);
Parámetros de llamada:
- source:Buffer, el texto XML/HTML que se va a analizar, según el tipo de documento cuando se creó
getElementsByTagName
Devuelve una lista de nodos con todos los elementos con el nombre especificado
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
Parámetros de llamada:
- tagName: Cadena, el nombre de la etiqueta que se recuperará. El valor "*" coincide con todas las etiquetas
Resultados de devolución:
- XmlNodeList, con la etiqueta especificada en el árbol del documentoXmlElementNodalXmlNodeListrecolectar. El orden de los nodos de elementos devueltos es el orden en que aparecen en el documento fuente.
Este método devolverá unXmlNodeListObjeto (se puede procesar como una matriz de solo lectura) que almacena todas las etiquetas en el documento con el nombre de etiqueta especificadoXmlElementLos nodos se almacenan en el orden en que aparecen en el documento fuente.XmlNodeListEl objeto está "activo", es decir, si se agrega o elimina un elemento con el nombre de etiqueta especificado en el documento, su contenido se actualizará automáticamente según sea necesario.
getElementsByTagNameNS
Devuelve una lista de nodos de todos los elementos con el espacio de nombres y el nombre especificados.
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
Parámetros de llamada:
- namespaceURI: Cadena, especifica el URI del espacio de nombres que se recuperará. El valor "*" coincide con todas las etiquetas
- localName: Cadena, el nombre de la etiqueta que se recuperará. El valor "*" coincide con todas las etiquetas
Resultados de devolución:
- XmlNodeList, con la etiqueta especificada en el árbol del documentoXmlElementNodalXmlNodeListrecolectar. El orden de los nodos de elementos devueltos es el orden en que aparecen en el documento fuente.
Este método es similar al método getElementsByTagName() excepto que recupera elementos según el espacio de nombres y el nombre.
getElementById
Devuelve el elemento con el atributo id especificado
1XmlElement XmlDocument.getElementById(String id);
Parámetros de llamada:
- id: Cadena, la identificación que se recuperará
Resultados de devolución:
- XmlElement, con el atributo id especificado en el árbol de nodosXmlElementnodo
Este método atravesará los nodos descendientes del documento y devolverá unXmlElementUn objeto de nodo que representa el primer elemento del documento con el atributo de identificación especificado. .
getElementsByClassName
Devuelve una lista de nodos de todos los elementos con el nombre de clase especificado
1XmlNodeList XmlDocument.getElementsByClassName(String className);
Parámetros de llamada:
- className: Cadena, el nombre de la clase que se recuperará
Resultados de devolución:
- XmlNodeList, con el nombre de clase especificado en el árbol del documentoXmlElementNodalXmlNodeListrecolectar. El orden de los nodos de elementos devueltos es el orden en que aparecen en el documento fuente.
Este método devolverá unXmlNodeListObjeto (se puede procesar como una matriz de solo lectura), que almacena todos los archivos con el nombre de clase especificado en el documentoXmlElementLos nodos se almacenan en el orden en que aparecen en el documento fuente.XmlNodeListEl objeto está "activo", es decir, si se agrega o elimina un elemento con el nombre de etiqueta especificado en el documento, su contenido se actualizará automáticamente según sea necesario.
createElement
Crear nodo de elemento
1XmlElement XmlDocument.createElement(String tagName);
Parámetros de llamada:
- tagName: Cadena, especifica el nombre especificado del nodo del elemento
Resultados de devolución:
- XmlElement, devuelve el recién creadoXmlElementnodo, con el nombre de etiqueta especificado
createElementNS
Crea un nodo de elemento con el espacio de nombres especificado.
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
Parámetros de llamada:
- namespaceURI: Cadena, especifica el URI del espacio de nombres del nodo del elemento
- qualifiedName: Cadena, especifica el nombre especificado del nodo del elemento
Resultados de devolución:
- XmlElement, devuelve el recién creadoXmlElementnodo, con el nombre de etiqueta especificado
createTextNode
Crear nodo de texto
1XmlText XmlDocument.createTextNode(String data);
Parámetros de llamada:
- data: Cadena, especifica el texto de este nodo
Resultados de devolución:
createComment
Crear nodo de anotación
1XmlComment XmlDocument.createComment(String data);
Parámetros de llamada:
- data: Cadena, especifica el texto del comentario de este nodo.
Resultados de devolución:
- XmlComment, devuelve el recién creadoXmlCommentNodo, el texto del comentario son los datos especificados.
createCDATASection
crearXmlCDATASectionnodo
1XmlCDATASection XmlDocument.createCDATASection(String data);
Parámetros de llamada:
- data: Cadena, especifica que este nodo especifica datos CDATA
Resultados de devolución:
- XmlCDATASection, devuelve el recién creadoXmlCDATASectionNodo, el contenido son los datos especificados.
createProcessingInstruction
crearXmlProcessingInstructionnodo
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
Parámetros de llamada:
- target: Cadena, especifica el destino de la instrucción de procesamiento.
- data: Cadena, especifica el texto del contenido de la instrucción de procesamiento.
Resultados de devolución:
- XmlProcessingInstruction, el nodo ProcessingInstruction recién creado
hasChildNodes
Consultar si hay nodos secundarios
1Boolean XmlDocument.hasChildNodes();
Resultados de devolución:
- Boolean, devuelve verdadero si hay nodos secundarios; de lo contrario, devuelve falso
normalize
Fusionar nodos de texto adyacentes y eliminar nodos de texto vacíos
1XmlDocument.normalize();
Este método atravesará todos los nodos descendientes del nodo actual y normalizará el documento eliminando los nodos de Texto vacíos y fusionando todos los nodos de Texto adyacentes. Este método es útil para simplificar la estructura del árbol del documento después de insertar o eliminar nodos.
cloneNode
Crea una copia exacta del nodo especificado.
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
Parámetros de llamada:
- deep: booleano, si se realiza una copia profunda; cuando es verdadero, el nodo clonado clonará todos los nodos secundarios del nodo original
Resultados de devolución:
- XmlNode, devuelve el nodo copiado
Este método copiará y devolverá una copia del nodo en el que se llamó. Si el argumento que se le pasa es verdadero, también copiará recursivamente todos los nodos descendientes del nodo actual. De lo contrario, sólo copia el nodo actual. El nodo devuelto no pertenece al árbol del documento y su propiedad parentNode es nula. Cuando se copia un nodo Elemento, se copiarán todas sus propiedades.
lookupPrefix
Devuelve el prefijo que coincide con el URI del espacio de nombres especificado en el nodo actual
1String XmlDocument.lookupPrefix(String namespaceURI);
Parámetros de llamada:
- namespaceURI: Cadena, especifica el URI del espacio de nombres coincidente
Resultados de devolución:
- String, devuelve el prefijo coincidente, devuelve nulo si no coincide.
lookupNamespaceURI
Devuelve el URI del espacio de nombres que coincide con el prefijo especificado en el nodo actual
1String XmlDocument.lookupNamespaceURI(String prefix);
Parámetros de llamada:
- prefix: Cadena, especifica el prefijo coincidente
Resultados de devolución:
- String, devuelve el URI del espacio de nombres coincidente, devuelve nulo si no coincide.
insertBefore
Insertar un nuevo nodo secundario antes de un nodo secundario existente
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
Parámetros de llamada:
Resultados de devolución:
- XmlNode, devuelve el nuevo nodo hijo
Si newChild ya existe en el árbol de documentos, se eliminará del árbol de documentos y se reinsertará en su nueva posición. Los nodos de un documento (o los nodos creados por un documento) no se pueden insertar en otro documento. Es decir, el atributoownerDocument de newChild debe ser el mismo que el atributoownerDocument del nodo actual.
insertAfter
Insertar un nuevo nodo secundario después de un nodo secundario existente
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
Parámetros de llamada:
Resultados de devolución:
- XmlNode, devuelve el nuevo nodo hijo
Si newChild ya existe en el árbol de documentos, se eliminará del árbol de documentos y se reinsertará en su nueva posición. Los nodos de un documento (o los nodos creados por un documento) no se pueden insertar en otro documento. Es decir, el atributoownerDocument de newChild debe ser el mismo que el atributoownerDocument del nodo actual.
appendChild
Agrega un nuevo nodo secundario al final de la lista de nodos secundarios de un nodo
1XmlNode XmlDocument.appendChild(XmlNode newChild);
Parámetros de llamada:
- newChild:XmlNode, especifique el nodo agregado
Resultados de devolución:
- XmlNode, devuelve este nuevo nodo hijo
Si newChild ya existe en el árbol de documentos, se eliminará del árbol de documentos y se reinsertará en su nueva posición. Los nodos de un documento (o los nodos creados por un documento) no se pueden insertar en otro documento. Es decir, el atributoownerDocument de newChild debe ser el mismo que el atributoownerDocument del nodo actual.
replaceChild
Reemplazar un nodo hijo por otro
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
Parámetros de llamada:
- newChild:XmlNode, especifique el nuevo nodo
- oldChild:XmlNode, especifica el nodo que se va a reemplazar
Resultados de devolución:
- XmlNodeSi el reemplazo es exitoso, este método puede devolver el nodo reemplazado, si el reemplazo falla, devuelve nulo.
Si newChild ya existe en el árbol de documentos, se eliminará del árbol de documentos y se reinsertará en su nueva posición. Los nodos de un documento (o los nodos creados por un documento) no se pueden insertar en otro documento. Es decir, el atributoownerDocument de newChild debe ser el mismo que el atributoownerDocument del nodo actual.
removeChild
Eliminar un nodo de la lista de nodos secundarios
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
Parámetros de llamada:
- oldChild:XmlNode, especifica el nodo que se eliminará
Resultados de devolución:
- XmlNodeSi la eliminación es exitosa, este método puede devolver el nodo eliminado, si falla, devuelve nulo.
toString
Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.
1String XmlDocument.toString();
Resultados de devolución:
- String, devuelve la representación de cadena del objeto
toJSON
Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.
1Value XmlDocument.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, no utilizada
Resultados de devolución:
- Value, devuelve un valor que contiene JSON serializable