ObjectXmlDocument
XmlDocument é xmlUn obxecto do módulo, que representa todo o documento XML e proporciona acceso a todo o documento.
XmlDocument é a raíz dunha árbore de documentos e contén todos os nodos de todo o documento XML. O obxecto XmlDocument tamén ofrece as seguintes funcións:
- Crea nodos de elementos, nodos de texto, comentarios, instrucións de procesamento, etc.
- Acceda e modifique as propiedades do documento e información relacionada (como comentarios DTD e declaracións de documentos)
- Analizar documentos XML
O seguinte é un código de exemplo que usa o obxecto 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}`);
No código anterior, primeiro usamos fs
o readFile()
método do módulo para ler un ficheiro XML e asignar o fluxo de ficheiros á variable xmlStr
. Despois usamos [xml](../../module/ifs/xml.md)
o método do módulo para analizar o ficheiro XML e asignar o obxecto parse()
analizado a unha variable . Finalmente, usamos o atributo de para obter o nodo raíz do documento, obter o seu nome de nodo e envialo á consola.XmlDocument
xmlDoc
xmlDoc
documentElement
Xa que XmlDocument é a entrada a todo o documento XML, podemos obter e modificar información relacionada co documento a través del. Por exemplo, podemos obter e modificar a versión XML e os atributos autónomos do documento mediante xmlDoc.xmlVersion
e respectivamente. xmlDoc.xmlStandalone
Tamén podemos xmlDoc.createProcessingInstruction()
crear novos nodos de instrucións de procesamento a través do método.
O obxecto XmlDocument é un tipo moi potente que nos proporciona unha gran comodidade para procesar e analizar ficheiros XML.
relación de herdanza
Construtor
XmlDocument
Constrúe un obxecto XmlDocument
1new XmlDocument(String type = "text/xml");
Parámetros de chamada:
- type: String, especifica o tipo de obxecto do documento, o valor predeterminado é "text/xml", se precisa procesar html, debe especificar "text/html"
propiedades dos membros
inputEncoding
Cadea, devolve a codificación utilizada para o documento (ao analizar)
1readonly String XmlDocument.inputEncoding;
xmlStandalone
Booleano, establece ou devolve se o documento é autónomo
1Boolean XmlDocument.xmlStandalone;
xmlVersion
Cadena, establece ou devolve a versión XML do documento
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, devolve a Declaración de tipo de documento relacionada co documento
1readonly XmlDocumentType XmlDocument.doctype;
Para documentos XML sen DTD, devólvese nulo. Esta propiedade ofreceXmlDocumentTypeAcceso directo ao obxecto (un nodo fillo de XmlDocument).
documentElement
XmlElement, devolve o nodo raíz do documento
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, devolve o nodo principal do documento HTML, só válido no modo html
1readonly XmlElement XmlDocument.head;
title
Cadena, devolve o contido do nodo de título do documento HTML, só válido no modo html
1readonly String XmlDocument.title;
body
XmlElement, devolve o nodo do corpo do documento HTML, só válido no modo html
1readonly XmlElement XmlDocument.body;
nodeType
Enteiro, devolve o tipo de nodo do nodo
1readonly Integer XmlDocument.nodeType;
O nodeType de diferentes obxectos devolverá valores diferentes:
- XmlElement: ELEMENT_NODE(1)
- XmlAttr:ATTRIBUTE_NODE(2)
- XmlText: TEXT_NODE(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, devolve o nome do nodo, segundo o seu tipo
1readonly String XmlDocument.nodeName;
O nodeName de diferentes obxectos devolverá valores diferentes:
- XmlElement: nome do elemento
- XmlAttr: nome do atributo
- XmlText: #texto
- XmlCDATASection: #cdata-section
- XmlProcessingInstruction: Devolve o destino de destino especificado
- XmlComment: #comentar
- XmlDocument: #documento
- XmlDocumentType: nome do tipo de documento
nodeValue
String, devolve o nome do nodo, segundo o seu tipo
1String XmlDocument.nodeValue;
O nodeName de diferentes obxectos devolverá valores diferentes:
- XmlElement: nulo
- XmlAttr: valor do atributo
- XmlText: o contido do nodo
- XmlCDATASection: o contido do nodo
- XmlProcessingInstruction: Devolve os datos de contido especificados
- XmlComment: texto de anotación
- XmlDocument: nulo
- XmlDocumentType: nulo
ownerDocument
XmlDocument, devolve o elemento raíz do nodo (obxecto XmlDocument)
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, pode devolver o nodo pai dun nodo
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, devolve a lista de nodos dos nodos fillos do nodo especificado
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, devolve a lista de nodos dos nodos do elemento fillo do nodo especificado.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, devolve o primeiro nodo fillo do nodo
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, devolve o último nodo fillo do nodo
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, devolve o nodo inmediatamente anterior a un nodo (no mesmo nivel de árbore). Se non hai tal nodo, esta propiedade devolve nulo.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode, devolve o nodo inmediatamente despois dun elemento (no mesmo nivel de árbore). Se non hai tal nodo, o atributo devolve nulo.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, devolve o primeiro nodo do elemento fillo do nodo
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, devolve o último nodo do elemento fillo do nodo
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, devolve o nodo do elemento inmediatamente anterior a un nodo (no mesmo nivel de árbore). Se non hai tal nodo, esta propiedade devolve nulo.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, devolve o nodo do elemento inmediatamente despois dun elemento (no mesmo nivel de árbore). Se non hai tal nodo, o atributo devolve nulo.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
Cadena, consulta e establece o texto do elemento seleccionado. Ao consultar, devolve os valores de todos os nodos de texto dentro do nodo de elemento; ao configurar, elimina todos os nodos fillos e substitúeos por un único nodo de texto.
1String XmlDocument.textContent;
función de membro
load
O documento está composto analizando unha cadea XML/HTML. Non se admite o multilingüismo.
1XmlDocument.load(String source);
Parámetros de chamada:
- source: Cadea, o texto XML/HTML que se vai analizar, dependendo do tipo cando se creou o documento
O documento está composto analizando unha cadea binaria XML/HTML e convértese automaticamente segundo a linguaxe.
1XmlDocument.load(Buffer source);
Parámetros de chamada:
- source:Buffer, o texto XML/HTML que se vai analizar, dependendo do tipo de documento cando foi creado
getElementsByTagName
Devolve unha lista de nodos con todos os elementos co nome especificado
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
Parámetros de chamada:
- tagName: String, o nome da etiqueta que se vai recuperar. O valor "*" coincide con todas as etiquetas
Resultados de devolución:
- XmlNodeList, coa etiqueta especificada na árbore do documentoXmlElementNodalXmlNodeListrecoller. A orde dos nós dos elementos devoltos é a orde na que aparecen no documento de orixe.
Este método devolverá aXmlNodeListObxecto (pódese procesar como unha matriz de só lectura) que almacena todas as etiquetas do documento co nome de etiqueta especificadoXmlElementOs nós almacénanse na orde en que aparecen no documento de orixe.XmlNodeListO obxecto está "en directo", é dicir, se se engade ou elimina un elemento co nome de etiqueta especificado no documento, o seu contido actualizarase automaticamente segundo sexa necesario.
getElementsByTagNameNS
Devolve unha lista de nodos de todos os elementos co espazo de nomes e nome especificados
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
Parámetros de chamada:
- namespaceURI: Cadea, especifica o URI do espazo de nomes que se vai recuperar. O valor "*" coincide con todas as etiquetas
- localName: String, o nome da etiqueta que se vai recuperar. O valor "*" coincide con todas as etiquetas
Resultados de devolución:
- XmlNodeList, coa etiqueta especificada na árbore do documentoXmlElementNodalXmlNodeListrecoller. A orde dos nós dos elementos devoltos é a orde na que aparecen no documento de orixe.
Este método é semellante ao método getElementsByTagName() excepto que recupera elementos baseados no espazo de nomes e no nome.
getElementById
Devolve o elemento co atributo id especificado
1XmlElement XmlDocument.getElementById(String id);
Parámetros de chamada:
- id: String, o identificador que se vai recuperar
Resultados de devolución:
- XmlElement, co atributo id especificado na árbore de nodosXmlElementnodo
Este método atravesará os nodos descendentes do documento e devolverá aXmlElementUn obxecto nodo que representa o primeiro elemento do documento co atributo id especificado. .
getElementsByClassName
Devolve unha lista de nodos de todos os elementos co nome de clase especificado
1XmlNodeList XmlDocument.getElementsByClassName(String className);
Parámetros de chamada:
- className: String, o nome da clase que se vai recuperar
Resultados de devolución:
- XmlNodeList, co nome de clase especificado na árbore do documentoXmlElementNodalXmlNodeListrecoller. A orde dos nós dos elementos devoltos é a orde na que aparecen no documento de orixe.
Este método devolverá aXmlNodeListObxecto (pódese procesar como unha matriz de só lectura), que almacena todos os ficheiros co nome de clase especificado no documentoXmlElementOs nós almacénanse na orde en que aparecen no documento de orixe.XmlNodeListO obxecto está "en directo", é dicir, se se engade ou elimina un elemento co nome de etiqueta especificado no documento, o seu contido actualizarase automaticamente segundo sexa necesario.
createElement
Crear nodo de elementos
1XmlElement XmlDocument.createElement(String tagName);
Parámetros de chamada:
- tagName: Cadea, especifica o nome especificado do nodo do elemento
Resultados de devolución:
- XmlElement, devolve o recén creadoXmlElementnodo, co nome de etiqueta especificado
createElementNS
Crea un nodo de elemento co espazo de nomes especificado
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
Parámetros de chamada:
- namespaceURI: String, especifica o URI do espazo de nomes do nodo do elemento
- qualifiedName: Cadea, especifica o nome especificado do nodo do elemento
Resultados de devolución:
- XmlElement, devolve o recén creadoXmlElementnodo, co nome de etiqueta especificado
createTextNode
Crear un nodo de texto
1XmlText XmlDocument.createTextNode(String data);
Parámetros de chamada:
- data: Cadea, especifica o texto deste nodo
Resultados de devolución:
createComment
Crear nodo de anotación
1XmlComment XmlDocument.createComment(String data);
Parámetros de chamada:
- data: Cadea, especifica o texto do comentario deste nodo
Resultados de devolución:
- XmlComment, devolve o recén creadoXmlCommentNode, o texto do comentario son os datos especificados
createCDATASection
crearXmlCDATASectionnodo
1XmlCDATASection XmlDocument.createCDATASection(String data);
Parámetros de chamada:
- data: String, especifica que este nodo especifica datos CDATA
Resultados de devolución:
- XmlCDATASection, devolve o recén creadoXmlCDATASectionNodo, o contido son os datos especificados
createProcessingInstruction
crearXmlProcessingInstructionnodo
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
Parámetros de chamada:
- target: Cadea, especifica o destino da instrución de procesamento
- data: Cadea, especifica o texto do contido da instrución de procesamento
Resultados de devolución:
- XmlProcessingInstruction, o nodo ProcessingInstruction recentemente creado
hasChildNodes
Consulta se hai nós fillos
1Boolean XmlDocument.hasChildNodes();
Resultados de devolución:
- Boolean, devolve verdadeiro se hai algún nodo fillo, se non, devolve falso
normalize
Combina os nós de Texto adxacentes e elimina os nós de Texto baleiros
1XmlDocument.normalize();
Este método atravesará todos os nodos descendentes do nodo actual e normalizará o documento eliminando os nós de Texto baleiros e fusionando todos os nós de Texto adxacentes. Este método é útil para simplificar a estrutura da árbore do documento despois de inserir ou eliminar nós.
cloneNode
Crea unha copia exacta do nodo especificado
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
Parámetros de chamada:
- deep: Booleano, se debe copiar en profundidade, cando é verdadeiro, o nodo clonado clonará todos os nodos fillos do nodo orixinal
Resultados de devolución:
- XmlNode, devolve o nodo copiado
Este método copiará e devolverá unha copia do nodo no que foi chamado. Se o argumento que se lle pasou é verdadeiro, tamén copiará de forma recursiva todos os nodos descendentes do nodo actual. En caso contrario, só copia o nodo actual. O nodo devolto non pertence á árbore do documento e a súa propiedade parentNode é nula. Cando se copia un nodo Element, copiaranse todas as súas propiedades.
lookupPrefix
Devolve o prefixo que coincide co URI de espazo de nomes especificado no nodo actual
1String XmlDocument.lookupPrefix(String namespaceURI);
Parámetros de chamada:
- namespaceURI: Cadea, especifica o URI do espazo de nomes coincidente
Resultados de devolución:
- String, devolve o prefixo coincidente, devolve nulo se non coincide.
lookupNamespaceURI
Devolve o URI do espazo de nomes que coincide co prefixo especificado no nodo actual
1String XmlDocument.lookupNamespaceURI(String prefix);
Parámetros de chamada:
- prefix: Cadea, especifica o prefixo coincidente
Resultados de devolución:
- String, devolve o URI do espazo de nomes coincidente, devolve nulo se non coincide.
insertBefore
Insira un novo nodo fillo antes dun nodo fillo existente
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
Parámetros de chamada:
Resultados de devolución:
- XmlNode, devolve o novo nodo fillo
Se xa existe newChild na árbore de documentos, eliminarase da árbore de documentos e reinserirase na súa nova posición. Os nós dun documento (ou os nodos creados por un documento) non se poden inserir noutro documento. É dicir, o atributo ownerDocument de newChild debe ser o mesmo que o atributo ownerDocument do nodo actual.
insertAfter
Insira un novo nodo fillo despois dun nodo fillo existente
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
Parámetros de chamada:
Resultados de devolución:
- XmlNode, devolve o novo nodo fillo
Se xa existe newChild na árbore de documentos, eliminarase da árbore de documentos e reinserirase na súa nova posición. Os nós dun documento (ou os nodos creados por un documento) non se poden inserir noutro documento. É dicir, o atributo ownerDocument de newChild debe ser o mesmo que o atributo ownerDocument do nodo actual.
appendChild
Engade un novo nodo fillo ao final da lista de nodos fillos dun nodo
1XmlNode XmlDocument.appendChild(XmlNode newChild);
Parámetros de chamada:
- newChild:XmlNode, especifique o nodo engadido
Resultados de devolución:
- XmlNode, devolve este novo nodo fillo
Se xa existe newChild na árbore de documentos, eliminarase da árbore de documentos e reinserirase na súa nova posición. Os nós dun documento (ou os nodos creados por un documento) non se poden inserir noutro documento. É dicir, o atributo ownerDocument de newChild debe ser o mesmo que o atributo ownerDocument do nodo actual.
replaceChild
Substitúe un nodo fillo por outro
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
Parámetros de chamada:
Resultados de devolución:
- XmlNode, Se a substitución ten éxito, este método pode devolver o nodo substituído. Se a substitución falla, devolve nulo.
Se xa existe newChild na árbore de documentos, eliminarase da árbore de documentos e reinserirase na súa nova posición. Os nós dun documento (ou os nodos creados por un documento) non se poden inserir noutro documento. É dicir, o atributo ownerDocument de newChild debe ser o mesmo que o atributo ownerDocument do nodo actual.
removeChild
Elimina un nodo da lista de nodos fillos
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
Parámetros de chamada:
- oldChild:XmlNode, especifica o nodo que se vai eliminar
Resultados de devolución:
- XmlNode, Se a eliminación é correcta, este método pode devolver o nodo eliminado. Se falla, devolve nulo.
toString
Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.
1String XmlDocument.toString();
Resultados de devolución:
- String, devolve a representación en cadea do obxecto
toJSON
Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.
1Value XmlDocument.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
Resultados de devolución:
- Value, devolve un valor que contén JSON serializable