ObjectXmlDocument
XmlDocument és xmlUn objecte del mòdul, que representa tot el document XML i proporciona accés a tot el document.
XmlDocument és l'arrel d'un arbre de document i conté tots els nodes de tot el document XML. L'objecte XmlDocument també proporciona les funcions següents:
- Creeu nodes d'elements, nodes de text, comentaris, instruccions de processament, etc.
- Accedir i modificar les propietats del document i la informació relacionada (com ara comentaris de DTD i declaracions de documents)
- Analitzar documents XML
El següent és un codi d'exemple que utilitza l'objecte XmlDocument per analitzar un document 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}`);
Al codi anterior, primer utilitzem fs
el readFile()
mètode del mòdul per llegir un fitxer XML i assignar el flux de fitxers a la variable xmlStr
. A continuació, utilitzem [xml](../../module/ifs/xml.md)
el mètode del mòdul per analitzar el fitxer XML i assignar l' objecte parse()
analitzat a una variable . Finalment, utilitzem l'atribut de per obtenir el node arrel del document, obtenir el seu nom de node i enviar-lo a la consola.XmlDocument
xmlDoc
xmlDoc
documentElement
Com que XmlDocument és l'entrada a tot el document XML, podem obtenir i modificar informació relacionada amb el document a través d'ell. Per exemple, podem obtenir i modificar la versió XML i els atributs autònoms del document mitjançant xmlDoc.xmlVersion
i respectivament. xmlDoc.xmlStandalone
També podem xmlDoc.createProcessingInstruction()
crear nous nodes d'instruccions de processament mitjançant el mètode.
L'objecte XmlDocument és un tipus molt potent que ens proporciona una gran comoditat per processar i analitzar fitxers XML.
relació hereditària
Constructor
XmlDocument
Construeix un objecte XmlDocument
1new XmlDocument(String type = "text/xml");
Paràmetres de trucada:
- type: Cadena, especifica el tipus d'objecte del document, el valor per defecte és "text/xml", si necessiteu processar html, heu d'especificar "text/html"
propietats dels membres
inputEncoding
Cadena, retorna la codificació utilitzada per al document (en analitzar)
1readonly String XmlDocument.inputEncoding;
xmlStandalone
Booleà, estableix o retorna si el document és autònom
1Boolean XmlDocument.xmlStandalone;
xmlVersion
Cadena, estableix o retorna la versió XML del document
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, retorna la declaració de tipus de document relacionada amb el document
1readonly XmlDocumentType XmlDocument.doctype;
Per als documents XML sense DTD, es retorna null. Aquesta propietat ofereixXmlDocumentTypeAccés directe a l'objecte (un node fill de XmlDocument).
documentElement
XmlElement, retorna el node arrel del document
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, retorna el node principal del document HTML, només vàlid en mode html
1readonly XmlElement XmlDocument.head;
title
String, retorna el contingut del node títol del document HTML, només vàlid en mode html
1readonly String XmlDocument.title;
body
XmlElement, retorna el node del cos del document HTML, només vàlid en mode html
1readonly XmlElement XmlDocument.body;
nodeType
Enter, retorna el tipus de node del node
1readonly Integer XmlDocument.nodeType;
El nodeType de diferents objectes retornarà diferents valors:
- 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, retorna el nom del node, segons el seu tipus
1readonly String XmlDocument.nodeName;
El nodeName de diferents objectes retornarà diferents valors:
- XmlElement:nom de l'element
- XmlAttr: nom de l'atribut
- XmlText: #text
- XmlCDATASection: #cdata-section
- XmlProcessingInstruction: retorna l'objectiu objectiu especificat
- XmlComment: #comentar
- XmlDocument: #document
- XmlDocumentType: nom del tipus de document
nodeValue
String, retorna el nom del node, segons el seu tipus
1String XmlDocument.nodeValue;
El nodeName de diferents objectes retornarà diferents valors:
- XmlElement: nul
- XmlAttr: valor de l'atribut
- XmlText: el contingut del node
- XmlCDATASection: el contingut del node
- XmlProcessingInstruction: retorna les dades de contingut especificades
- XmlComment: text d'anotació
- XmlDocument: nul
- XmlDocumentType: nul
ownerDocument
XmlDocument, retorna l'element arrel del node (objecte XmlDocument)
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, pot retornar el node pare d'un node
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, retorna la llista de nodes dels nodes fills del node especificat
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, retorna la llista de nodes dels nodes de l'element fill del node especificat.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, retorna el primer node fill del node
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, retorna l'últim node fill del node
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, retorna el node immediatament anterior a un node (al mateix nivell d'arbre). Si no hi ha aquest node, aquesta propietat retorna null.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode, retorna el node immediatament després d'un element (al mateix nivell d'arbre). Si no hi ha aquest node, l'atribut retorna null.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, retorna el primer node element fill del node
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, retorna l'últim node d'element fill del node
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, retorna el node d'element immediatament anterior a un node (al mateix nivell d'arbre). Si no hi ha aquest node, aquesta propietat retorna null.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, retorna el node d'element immediatament després d'un element (al mateix nivell d'arbre). Si no hi ha aquest node, l'atribut retorna null.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
Cadena, consulta i estableix el text de l'element seleccionat. Quan es consulta, retorna els valors de tots els nodes de text dins del node d'element; quan es configura, elimina tots els nodes fills i els substitueix per un sol node de text.
1String XmlDocument.textContent;
funció de membre
load
El document està compost analitzant una cadena XML/HTML. No s'admet el multilingüisme.
1XmlDocument.load(String source);
Paràmetres de trucada:
- source: String, el text XML/HTML que s'ha d'analitzar, depenent del tipus quan es va crear el document
El document es compon analitzant una cadena binària XML/HTML i es converteix automàticament segons l'idioma.
1XmlDocument.load(Buffer source);
Paràmetres de trucada:
- source:Buffer, el text XML/HTML que s'ha d'analitzar, en funció del tipus de document quan es va crear
getElementsByTagName
Retorna una llista de nodes amb tots els elements amb el nom especificat
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
Paràmetres de trucada:
- tagName: String, el nom de l'etiqueta que s'ha de recuperar. El valor "*" coincideix amb totes les etiquetes
Resultats de retorn:
- XmlNodeList, amb l'etiqueta especificada a l'arbre del documentXmlElementNodalXmlNodeListreunir. L'ordre dels nodes d'element retornats és l'ordre en què apareixen al document font.
Aquest mètode retornarà aXmlNodeListObjecte (es pot processar com a matriu només de lectura) que emmagatzema totes les etiquetes del document amb el nom d'etiqueta especificatXmlElementEls nodes s'emmagatzemen en l'ordre en què apareixen al document font.XmlNodeListL'objecte és "en directe", és a dir, si un element amb el nom d'etiqueta especificat s'afegeix o s'elimina al document, el seu contingut s'actualitzarà automàticament segons sigui necessari.
getElementsByTagNameNS
Retorna una llista de nodes de tots els elements amb l'espai de noms i el nom especificats
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
Paràmetres de trucada:
- namespaceURI: String, especifica l'URI de l'espai de noms que s'ha de recuperar. El valor "*" coincideix amb totes les etiquetes
- localName: String, el nom de l'etiqueta que s'ha de recuperar. El valor "*" coincideix amb totes les etiquetes
Resultats de retorn:
- XmlNodeList, amb l'etiqueta especificada a l'arbre del documentXmlElementNodalXmlNodeListreunir. L'ordre dels nodes d'element retornats és l'ordre en què apareixen al document font.
Aquest mètode és similar al mètode getElementsByTagName() excepte que recupera elements basats en l'espai de noms i el nom.
getElementById
Retorna l'element amb l'atribut id especificat
1XmlElement XmlDocument.getElementById(String id);
Paràmetres de trucada:
- id: String, l'identificador que s'ha de recuperar
Resultats de retorn:
- XmlElement, amb l'atribut id especificat a l'arbre de nodesXmlElementnode
Aquest mètode travessarà els nodes descendents del document i retornarà aXmlElementUn objecte node que representa el primer element de document amb l'atribut id especificat. .
getElementsByClassName
Retorna una llista de nodes de tots els elements amb el nom de classe especificat
1XmlNodeList XmlDocument.getElementsByClassName(String className);
Paràmetres de trucada:
- className: String, el nom de la classe que s'ha de recuperar
Resultats de retorn:
- XmlNodeList, amb el nom de classe especificat a l'arbre del documentXmlElementNodalXmlNodeListreunir. L'ordre dels nodes d'element retornats és l'ordre en què apareixen al document font.
Aquest mètode retornarà aXmlNodeListObjecte (es pot processar com a matriu de només lectura), que emmagatzema tots els fitxers amb el nom de classe especificat al documentXmlElementEls nodes s'emmagatzemen en l'ordre en què apareixen al document font.XmlNodeListL'objecte és "en directe", és a dir, si un element amb el nom d'etiqueta especificat s'afegeix o s'elimina al document, el seu contingut s'actualitzarà automàticament segons sigui necessari.
createElement
Crea un node d'element
1XmlElement XmlDocument.createElement(String tagName);
Paràmetres de trucada:
- tagName: String, especifica el nom especificat del node de l'element
Resultats de retorn:
- XmlElement, retorna el nou creatXmlElementnode, amb el nom d'etiqueta especificat
createElementNS
Crea un node d'element amb l'espai de noms especificat
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
Paràmetres de trucada:
- namespaceURI: String, especifica l'URI de l'espai de noms del node de l'element
- qualifiedName: String, especifica el nom especificat del node de l'element
Resultats de retorn:
- XmlElement, retorna el nou creatXmlElementnode, amb el nom d'etiqueta especificat
createTextNode
Crea un node de text
1XmlText XmlDocument.createTextNode(String data);
Paràmetres de trucada:
- data: String, especifica el text d'aquest node
Resultats de retorn:
createComment
Crea un node d'anotació
1XmlComment XmlDocument.createComment(String data);
Paràmetres de trucada:
- data: String, especifica el text del comentari d'aquest node
Resultats de retorn:
- XmlComment, retorna el nou creatXmlCommentNode, el text del comentari són les dades especificades
createCDATASection
crearXmlCDATASectionnode
1XmlCDATASection XmlDocument.createCDATASection(String data);
Paràmetres de trucada:
- data: String, especifica que aquest node especifica dades CDATA
Resultats de retorn:
- XmlCDATASection, retorna el nou creatXmlCDATASectionNode, el contingut són les dades especificades
createProcessingInstruction
crearXmlProcessingInstructionnode
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
Paràmetres de trucada:
- target: String, especifica l'objectiu de la instrucció de processament
- data: Cadena, especifica el text del contingut de la instrucció de processament
Resultats de retorn:
- XmlProcessingInstruction, el node ProcessingInstruction acabat de crear
hasChildNodes
Consulta si hi ha nodes fills
1Boolean XmlDocument.hasChildNodes();
Resultats de retorn:
- Boolean, retorna true si hi ha nodes fills, en cas contrari retorna false
normalize
Combina els nodes de text adjacents i suprimeix els nodes de text buits
1XmlDocument.normalize();
Aquest mètode travessarà tots els nodes descendents del node actual i normalitzarà el document eliminant els nodes de text buits i fusionant tots els nodes de text adjacents. Aquest mètode és útil per simplificar l'estructura de l'arbre del document després d'inserir o suprimir nodes.
cloneNode
Crea una còpia exacta del node especificat
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
Paràmetres de trucada:
- deep: Booleà, si cal copiar en profunditat, quan és cert, el node clonat clonarà tots els nodes fills del node original
Resultats de retorn:
- XmlNode, retorna el node copiat
Aquest mètode copiarà i retornarà una còpia del node on s'ha cridat. Si l'argument que se li passa és cert, també copiarà de manera recursiva tots els nodes descendents del node actual. En cas contrari, només copia el node actual. El node retornat no pertany a l'arbre del document i la seva propietat parentNode és nul·la. Quan es copia un node Element, es copiaran totes les seves propietats.
lookupPrefix
Retorna el prefix que coincideix amb l'URI de l'espai de noms especificat al node actual
1String XmlDocument.lookupPrefix(String namespaceURI);
Paràmetres de trucada:
- namespaceURI: String, especifica l'URI de l'espai de noms coincident
Resultats de retorn:
- String, retorna el prefix coincident, retorna null si no coincideix.
lookupNamespaceURI
Retorna l'URI de l'espai de noms que coincideix amb el prefix especificat al node actual
1String XmlDocument.lookupNamespaceURI(String prefix);
Paràmetres de trucada:
- prefix: Cadena, especifica el prefix coincident
Resultats de retorn:
- String, retorna l'URI de l'espai de noms coincident, retorna null si no coincideix.
insertBefore
Inseriu un nou node fill abans d'un node fill existent
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
Paràmetres de trucada:
Resultats de retorn:
- XmlNode, retorna el nou node fill
Si newChild ja existeix a l'arbre del document, s'eliminarà de l'arbre del document i es tornarà a inserir a la seva nova posició. Els nodes d'un document (o nodes creats per un document) no es poden inserir en un altre document. És a dir, l'atribut ownerDocument de newChild ha de ser el mateix que l'atribut ownerDocument del node actual.
insertAfter
Inseriu un nou node fill després d'un node fill existent
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
Paràmetres de trucada:
Resultats de retorn:
- XmlNode, retorna el nou node fill
Si newChild ja existeix a l'arbre del document, s'eliminarà de l'arbre del document i es tornarà a inserir a la seva nova posició. Els nodes d'un document (o nodes creats per un document) no es poden inserir en un altre document. És a dir, l'atribut ownerDocument de newChild ha de ser el mateix que l'atribut ownerDocument del node actual.
appendChild
Afegeix un nou node fill al final de la llista de nodes fill d'un node
1XmlNode XmlDocument.appendChild(XmlNode newChild);
Paràmetres de trucada:
- newChild:XmlNode, especifiqueu el node afegit
Resultats de retorn:
- XmlNode, retorna aquest nou node fill
Si newChild ja existeix a l'arbre del document, s'eliminarà de l'arbre del document i es tornarà a inserir a la seva nova posició. Els nodes d'un document (o nodes creats per un document) no es poden inserir en un altre document. És a dir, l'atribut ownerDocument de newChild ha de ser el mateix que l'atribut ownerDocument del node actual.
replaceChild
Substituïu un node fill per un altre
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
Paràmetres de trucada:
- newChild:XmlNode, especifiqueu el nou node
- oldChild:XmlNode, especifica el node que s'ha de substituir
Resultats de retorn:
- XmlNode, Si la substitució té èxit, aquest mètode pot retornar el node substituït. Si la substitució falla, retorna nul.
Si newChild ja existeix a l'arbre del document, s'eliminarà de l'arbre del document i es tornarà a inserir a la seva nova posició. Els nodes d'un document (o nodes creats per un document) no es poden inserir en un altre document. És a dir, l'atribut ownerDocument de newChild ha de ser el mateix que l'atribut ownerDocument del node actual.
removeChild
Elimina un node de la llista de nodes fills
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
Paràmetres de trucada:
- oldChild:XmlNode, especifica el node que s'ha de suprimir
Resultats de retorn:
- XmlNode, Si la supressió és correcta, aquest mètode pot retornar el node suprimit. Si falla, retorna null.
toString
Retorna la representació de cadena de l'objecte. En general, es retorna "[Objecte natiu]". L'objecte es pot tornar a implementar segons les seves pròpies característiques.
1String XmlDocument.toString();
Resultats de retorn:
- String, retorna la representació de cadena de l'objecte
toJSON
Retorna una representació en format JSON de l'objecte, generalment retornant una col·lecció de propietats llegibles definides per l'objecte.
1Value XmlDocument.toJSON(String key = "");
Paràmetres de trucada:
- key: Corda, no utilitzada
Resultats de retorn:
- Value, retorna un valor que conté JSON serializable