Objeto incorporado

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:

  1. Cree nodos de elementos, nodos de texto, comentarios, instrucciones de procesamiento, etc.
  2. Acceder y modificar propiedades de documentos e información relacionada (como comentarios DTD y declaraciones de documentos)
  3. 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 9
var 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 fsel 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.XmlDocumentxmlDocxmlDocdocumentElement

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.xmlVersiony respectivamente. xmlDoc.xmlStandaloneTambié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

1
new 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)

1
readonly String XmlDocument.inputEncoding;

xmlStandalone

Booleano, establece o devuelve si el documento es independiente

1
Boolean XmlDocument.xmlStandalone;

xmlVersion

Cadena, establece o devuelve la versión XML del documento.

1
String XmlDocument.xmlVersion;

doctype

XmlDocumentType, devuelve la Declaración de Tipo de Documento relacionada con el documento

1
readonly 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

1
readonly XmlElement XmlDocument.documentElement;

XmlElement, devuelve el nodo principal del documento HTML, solo válido en modo html

1
readonly XmlElement XmlDocument.head;

title

Cadena, devuelve el contenido del nodo de título del documento HTML, solo válido en modo html

1
readonly String XmlDocument.title;

body

XmlElement, devuelve el nodo del cuerpo del documento HTML, solo válido en modo html

1
readonly XmlElement XmlDocument.body;

nodeType

Entero, devuelve el tipo de nodo del nodo.

1
readonly Integer XmlDocument.nodeType;

El tipo de nodo de diferentes objetos devolverá valores diferentes:


nodeName

String, devuelve el nombre del nodo, según su tipo

1
readonly String XmlDocument.nodeName;

El nombre de nodo de diferentes objetos devolverá valores diferentes:


nodeValue

String, devuelve el nombre del nodo, según su tipo

1
String XmlDocument.nodeValue;

El nombre de nodo de diferentes objetos devolverá valores diferentes:


ownerDocument

XmlDocument, devuelve el elemento raíz del nodo (objeto XmlDocument)

1
readonly XmlDocument XmlDocument.ownerDocument;

parentNode

XmlNode, puede devolver el nodo padre de un nodo

1
readonly XmlNode XmlDocument.parentNode;

childNodes

XmlNodeList, devuelve la lista de nodos secundarios del nodo especificado

1
readonly XmlNodeList XmlDocument.childNodes;

children

XmlNodeList, devuelve la lista de nodos de los nodos de elementos secundarios del nodo especificado.

1
readonly XmlNodeList XmlDocument.children;

firstChild

XmlNode, devuelve el primer nodo hijo del nodo

1
readonly XmlNode XmlDocument.firstChild;

lastChild

XmlNode, devuelve el último nodo hijo del nodo

1
readonly 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.

1
readonly 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.

1
readonly XmlNode XmlDocument.nextSibling;

firstElementChild

XmlNode, devuelve el primer nodo elemento hijo del nodo

1
readonly XmlNode XmlDocument.firstElementChild;

lastElementChild

XmlNode, devuelve el último nodo del elemento hijo del nodo

1
readonly 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.

1
readonly 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.

1
readonly 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.

1
String XmlDocument.textContent;

función miembro

load

El documento se compone analizando una cadena XML/HTML. No se admite el multilingüismo.

1
XmlDocument.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.

1
XmlDocument.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

1
XmlNodeList 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 2
XmlNodeList 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

1
XmlElement XmlDocument.getElementById(String id);

Parámetros de llamada:

  • id: Cadena, la identificación que se recuperará

Resultados de devolución:

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

1
XmlNodeList 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

1
XmlElement XmlDocument.createElement(String tagName);

Parámetros de llamada:

  • tagName: Cadena, especifica el nombre especificado del nodo del elemento

Resultados de devolución:


createElementNS

Crea un nodo de elemento con el espacio de nombres especificado.

1 2
XmlElement 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:


createTextNode

Crear nodo de texto

1
XmlText XmlDocument.createTextNode(String data);

Parámetros de llamada:

  • data: Cadena, especifica el texto de este nodo

Resultados de devolución:

  • XmlText, devuelve el recién creadoXmlTextNodo, que representa la cadena de datos especificada

createComment

Crear nodo de anotación

1
XmlComment 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

1
XmlCDATASection XmlDocument.createCDATASection(String data);

Parámetros de llamada:

  • data: Cadena, especifica que este nodo especifica datos CDATA

Resultados de devolución:


createProcessingInstruction

crearXmlProcessingInstructionnodo

1 2
XmlProcessingInstruction 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:


hasChildNodes

Consultar si hay nodos secundarios

1
Boolean 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

1
XmlDocument.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.

1
XmlNode 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

1
String 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

1
String 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 2
XmlNode XmlDocument.insertBefore(XmlNode newChild, XmlNode refChild);

Parámetros de llamada:

  • newChild:XmlNode, insertar nuevo nodo
  • refChild:XmlNode, inserte un nuevo nodo antes de este nodo

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 2
XmlNode XmlDocument.insertAfter(XmlNode newChild, XmlNode refChild);

Parámetros de llamada:

  • newChild:XmlNode, insertar nuevo nodo
  • refChild:XmlNode, inserte un nuevo nodo después de este nodo

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

1
XmlNode 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 2
XmlNode 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

1
XmlNode 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.

1
String 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.

1
Value XmlDocument.toJSON(String key = "");

Parámetros de llamada:

  • key: Cadena, no utilizada

Resultados de devolución:

  • Value, devuelve un valor que contiene JSON serializable