OggettoXmlDocumento
XmlDocument è xmlUn oggetto del modulo, che rappresenta l'intero documento XML e fornisce l'accesso all'intero documento.
XmlDocument è la radice di un albero di documenti e contiene tutti i nodi dell'intero documento XML. L'oggetto XmlDocument fornisce inoltre le seguenti funzioni:
- Crea nodi di elementi, nodi di testo, commenti, istruzioni di elaborazione, ecc.
- Accedere e modificare le proprietà del documento e le informazioni correlate (come commenti DTD e dichiarazioni di documenti)
- Analizzare documenti XML
Di seguito è riportato un codice di esempio che utilizza l'oggetto XmlDocument per analizzare 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}`);
Nel codice precedente, utilizziamo innanzitutto fs
il metodo module readFile()
per leggere un file XML e assegnare il flusso di file alla variabile xmlStr
. Quindi utilizziamo [xml](../../module/ifs/xml.md)
il metodo del modulo per analizzare il file XML e assegnare l' oggetto parse()
analizzato a una variabile . Infine, utilizziamo l'attributo di per ottenere il nodo radice del documento, ottenere il nome del nodo e inviarlo alla console.XmlDocument
xmlDoc
xmlDoc
documentElement
Poiché XmlDocument è l'ingresso dell'intero documento XML, attraverso di esso possiamo ottenere e modificare le informazioni relative al documento. Ad esempio, possiamo ottenere e modificare la versione XML e gli attributi autonomi del documento tramite xmlDoc.xmlVersion
e rispettivamente. xmlDoc.xmlStandalone
Possiamo anche xmlDoc.createProcessingInstruction()
creare nuovi nodi di istruzioni di elaborazione attraverso il metodo.
L'oggetto XmlDocument è un tipo molto potente che ci offre grande comodità nell'elaborazione e nell'analisi dei file XML.
rapporto ereditario
Costruttore
XmlDocument
Costruisci un oggetto XmlDocument
1new XmlDocument(String type = "text/xml");
Parametri di chiamata:
- type: String, specifica il tipo di oggetto documento, il valore predefinito è "testo/xml", se devi elaborare html, devi specificare "text/html"
proprietà dei membri
inputEncoding
String, restituisce la codifica utilizzata per il documento (durante l'analisi)
1readonly String XmlDocument.inputEncoding;
xmlStandalone
Booleano, imposta o restituisce se il documento è autonomo
1Boolean XmlDocument.xmlStandalone;
xmlVersion
Stringa, imposta o restituisce la versione XML del documento
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, restituisce la Dichiarazione del tipo di documento relativa al documento
1readonly XmlDocumentType XmlDocument.doctype;
Per i documenti XML senza DTD, viene restituito null. Questa struttura fornisceXmlDocumentTypeAccesso diretto all'oggetto (un nodo figlio di XmlDocument).
documentElement
XmlElement, restituisce il nodo radice del documento
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, restituisce il nodo head del documento HTML, valido solo in modalità html
1readonly XmlElement XmlDocument.head;
title
String, restituisce il contenuto del nodo titolo del documento HTML, valido solo in modalità html
1readonly String XmlDocument.title;
body
XmlElement, restituisce il nodo del corpo del documento HTML, valido solo in modalità html
1readonly XmlElement XmlDocument.body;
nodeType
Intero, restituisce il tipo di nodo del nodo
1readonly Integer XmlDocument.nodeType;
Il nodeType di oggetti diversi restituirà valori diversi:
- XmlElement: ELEMENT_NODO(1)
- XmlAttr:ATTRIBUTE_NODO(2)
- XmlText: TESTO_NODO(3)
- XmlCDATASection: CDATA_SECTION_NODE(4)
- XmlProcessingInstruction: PROCESSING_INSTRUCTION_NODE(7)
- XmlComment:COMMENT_NODE(8)
- XmlDocument: DOCUMENT_NODE(9)
- XmlDocumentType: TIPO_DOCUMENTO_NODO(10)
nodeName
String, restituisce il nome del nodo, in base al suo tipo
1readonly String XmlDocument.nodeName;
Il nodeName di oggetti diversi restituirà valori diversi:
- XmlElement:nome dell'elemento
- XmlAttr: nome attributo
- XmlText: #testo
- XmlCDATASection: #cdata-sezione
- XmlProcessingInstruction: Restituisce la destinazione di destinazione specificata
- XmlComment: #commento
- XmlDocument: #documento
- XmlDocumentType: nome del tipo di documento
nodeValue
String, restituisce il nome del nodo, in base al suo tipo
1String XmlDocument.nodeValue;
Il nodeName di oggetti diversi restituirà valori diversi:
- XmlElement: nullo
- XmlAttr: valore dell'attributo
- XmlText: il contenuto del nodo
- XmlCDATASection: il contenuto del nodo
- XmlProcessingInstruction: Restituisce i dati del contenuto specificato
- XmlComment: testo dell'annotazione
- XmlDocument: nullo
- XmlDocumentType: nullo
ownerDocument
XmlDocument, restituisce l'elemento root del nodo (oggetto XmlDocument)
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, può restituire il nodo genitore di un nodo
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, restituisce l'elenco dei nodi figlio del nodo specificato
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, restituisce l'elenco dei nodi dell'elemento figlio del nodo specificato.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, restituisce il primo nodo figlio del nodo
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, restituisce l'ultimo nodo figlio del nodo
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, restituisce il nodo immediatamente precedente a un nodo (allo stesso livello dell'albero). Se non esiste un nodo di questo tipo, questa proprietà restituisce null.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode, restituisce il nodo immediatamente successivo a un elemento (nello stesso livello dell'albero). Se non esiste tale nodo, l'attributo restituisce null.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, restituisce il primo nodo dell'elemento figlio del nodo
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, restituisce l'ultimo nodo dell'elemento figlio del nodo
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, restituisce l'elemento nodo immediatamente precedente a un nodo (allo stesso livello dell'albero). Se non esiste tale nodo, questa proprietà restituisce null.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, restituisce il nodo dell'elemento immediatamente successivo a un elemento (nello stesso livello dell'albero). Se non esiste tale nodo, l'attributo restituisce null.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
Stringa, interroga e imposta il testo dell'elemento selezionato. Durante l'interrogazione, restituisce i valori di tutti i nodi di testo all'interno del nodo dell'elemento; durante l'impostazione, elimina tutti i nodi figli e li sostituisce con un singolo nodo di testo.
1String XmlDocument.textContent;
funzione membro
load
Il documento è composto analizzando una stringa XML/HTML.Il multilinguismo non è supportato.
1XmlDocument.load(String source);
Parametri di chiamata:
- source: String, il testo XML/HTML da analizzare, a seconda del tipo al momento della creazione del documento
Il documento è composto analizzando una stringa binaria XML/HTML e convertito automaticamente in base alla lingua.
1XmlDocument.load(Buffer source);
Parametri di chiamata:
- source:Buffer, il testo XML/HTML da analizzare, a seconda del tipo di documento al momento della creazione
getElementsByTagName
Restituisce un elenco di nodi con tutti gli elementi con il nome specificato
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
Parametri di chiamata:
- tagName: String, il nome del tag da recuperare. Il valore "*" corrisponde a tutti i tag
Risultati restituiti:
- XmlNodeList, con il tag specificato nell'albero del documentoXmlElementNodaleXmlNodeListraccogliere. L'ordine dei nodi elemento restituiti è l'ordine in cui appaiono nel documento di origine.
Questo metodo restituirà aXmlNodeListOggetto (può essere elaborato come un array di sola lettura) che memorizza tutti i tag nel documento con il nome del tag specificatoXmlElementI nodi vengono archiviati nell'ordine in cui appaiono nel documento di origine.XmlNodeListL'oggetto è "live", ovvero se nel documento viene aggiunto o eliminato un elemento con il nome del tag specificato, il suo contenuto verrà automaticamente aggiornato secondo necessità.
getElementsByTagNameNS
Restituisce un elenco di nodi di tutti gli elementi con lo spazio dei nomi e il nome specificati
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
Parametri di chiamata:
- namespaceURI: String, specifica l'URI dello spazio dei nomi da recuperare. Il valore "*" corrisponde a tutti i tag
- localName: String, il nome del tag da recuperare. Il valore "*" corrisponde a tutti i tag
Risultati restituiti:
- XmlNodeList, con il tag specificato nell'albero del documentoXmlElementNodaleXmlNodeListraccogliere. L'ordine dei nodi elemento restituiti è l'ordine in cui appaiono nel documento di origine.
Questo metodo è simile al metodo getElementsByTagName() tranne per il fatto che recupera gli elementi in base allo spazio dei nomi e al nome.
getElementById
Restituisce l'elemento con l'attributo id specificato
1XmlElement XmlDocument.getElementById(String id);
Parametri di chiamata:
- id: String, l'ID da recuperare
Risultati restituiti:
- XmlElement, con l'attributo id specificato nell'albero dei nodiXmlElementnodo
Questo metodo attraverserà i nodi discendenti del documento e restituirà aXmlElementUn oggetto nodo che rappresenta il primo elemento del documento con l'attributo id specificato. .
getElementsByClassName
Restituisce un elenco di nodi di tutti gli elementi con il nome della classe specificata
1XmlNodeList XmlDocument.getElementsByClassName(String className);
Parametri di chiamata:
- className: String, il nome della classe da recuperare
Risultati restituiti:
- XmlNodeList, con il nome della classe specificata nell'albero del documentoXmlElementNodaleXmlNodeListraccogliere. L'ordine dei nodi elemento restituiti è l'ordine in cui appaiono nel documento di origine.
Questo metodo restituirà aXmlNodeListOggetto (può essere elaborato come un array di sola lettura), che memorizza tutti i file con il nome della classe specificata nel documentoXmlElementI nodi vengono archiviati nell'ordine in cui appaiono nel documento di origine.XmlNodeListL'oggetto è "live", ovvero se nel documento viene aggiunto o eliminato un elemento con il nome del tag specificato, il suo contenuto verrà automaticamente aggiornato secondo necessità.
createElement
Crea nodo elemento
1XmlElement XmlDocument.createElement(String tagName);
Parametri di chiamata:
- tagName: String, specifica il nome specificato del nodo dell'elemento
Risultati restituiti:
- XmlElement, restituisce il file appena creatoXmlElementnodo, con il nome dell'etichetta specificato
createElementNS
Crea un nodo elemento con lo spazio dei nomi specificato
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
Parametri di chiamata:
- namespaceURI: String, specifica l'URI dello spazio dei nomi del nodo dell'elemento
- qualifiedName: String, specifica il nome specificato del nodo dell'elemento
Risultati restituiti:
- XmlElement, restituisce il file appena creatoXmlElementnodo, con il nome dell'etichetta specificato
createTextNode
Crea nodo di testo
1XmlText XmlDocument.createTextNode(String data);
Parametri di chiamata:
- data: String, specifica il testo di questo nodo
Risultati restituiti:
- XmlText, restituisce il file appena creatoXmlTextNodo, che rappresenta la stringa di dati specificata
createComment
Crea nodo di annotazione
1XmlComment XmlDocument.createComment(String data);
Parametri di chiamata:
- data: String, specifica il testo del commento di questo nodo
Risultati restituiti:
- XmlComment, restituisce il file appena creatoXmlCommentNodo, il testo del commento corrisponde ai dati specificati
createCDATASection
creareXmlCDATASectionnodo
1XmlCDATASection XmlDocument.createCDATASection(String data);
Parametri di chiamata:
- data: String, specifica che questo nodo specifica i dati CDATA
Risultati restituiti:
- XmlCDATASection, restituisce il file appena creatoXmlCDATASectionNodo, il contenuto sono i dati specificati
createProcessingInstruction
creareXmlProcessingInstructionnodo
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
Parametri di chiamata:
- target: String, specifica la destinazione dell'istruzione di elaborazione
- data: String, specifica il testo del contenuto dell'istruzione di elaborazione
Risultati restituiti:
- XmlProcessingInstruction, il nodo ProcessingInstruction appena creato
hasChildNodes
Interroga se sono presenti nodi figlio
1Boolean XmlDocument.hasChildNodes();
Risultati restituiti:
- Boolean, restituisce vero se sono presenti nodi figli, altrimenti restituisce falso
normalize
Unisci nodi di testo adiacenti ed elimina i nodi di testo vuoti
1XmlDocument.normalize();
Questo metodo attraverserà tutti i nodi discendenti del nodo corrente e normalizzerà il documento eliminando i nodi di testo vuoti e unendo tutti i nodi di testo adiacenti. Questo metodo è utile per semplificare la struttura dell'albero del documento dopo aver inserito o eliminato nodi.
cloneNode
Crea una copia esatta del nodo specificato
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
Parametri di chiamata:
- deep: Booleano, se eseguire la copia profonda, quando è vero, il nodo clonato clonerà tutti i nodi figlio del nodo originale
Risultati restituiti:
- XmlNode, restituisce il nodo copiato
Questo metodo copierà e restituirà una copia del nodo su cui è stato chiamato. Se l'argomento passato è vero, copierà ricorsivamente anche tutti i nodi discendenti del nodo corrente. Altrimenti, copia solo il nodo corrente. Il nodo restituito non appartiene all'albero del documento e la sua proprietà parentNode è nulla. Quando un nodo Elemento viene copiato, verranno copiate tutte le sue proprietà.
lookupPrefix
Restituisce il prefisso corrispondente all'URI dello spazio dei nomi specificato sul nodo corrente
1String XmlDocument.lookupPrefix(String namespaceURI);
Parametri di chiamata:
- namespaceURI: String, specifica l'URI dello spazio dei nomi corrispondente
Risultati restituiti:
- String, restituisce il prefisso corrispondente, restituisce null se non corrisponde.
lookupNamespaceURI
Restituisce l'URI dello spazio dei nomi corrispondente al prefisso specificato sul nodo corrente
1String XmlDocument.lookupNamespaceURI(String prefix);
Parametri di chiamata:
- prefix: String, specifica il prefisso corrispondente
Risultati restituiti:
- String, restituisce l'URI dello spazio dei nomi corrispondente, restituisce null se non corrisponde.
insertBefore
Inserisci un nuovo nodo figlio prima di un nodo figlio esistente
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
Parametri di chiamata:
- newChild:XmlNode, inserisci un nuovo nodo
- refChild:XmlNode, inserisci un nuovo nodo prima di questo nodo
Risultati restituiti:
- XmlNode, restituisce il nuovo nodo figlio
Se newChild esiste già nell'albero del documento, verrà rimosso dall'albero del documento e reinserito nella sua nuova posizione. I nodi di un documento (o i nodi creati da un documento) non possono essere inseriti in un altro documento. Cioè, l'attributoownerDocument di newChild deve essere uguale all'attributoownerDocument del nodo corrente.
insertAfter
Inserisci un nuovo nodo figlio dopo un nodo figlio esistente
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
Parametri di chiamata:
- newChild:XmlNode, inserisci un nuovo nodo
- refChild:XmlNode, inserisci un nuovo nodo dopo questo nodo
Risultati restituiti:
- XmlNode, restituisce il nuovo nodo figlio
Se newChild esiste già nell'albero del documento, verrà rimosso dall'albero del documento e reinserito nella sua nuova posizione. I nodi di un documento (o i nodi creati da un documento) non possono essere inseriti in un altro documento. Cioè, l'attributoownerDocument di newChild deve essere uguale all'attributoownerDocument del nodo corrente.
appendChild
Aggiunge un nuovo nodo figlio alla fine dell'elenco dei nodi figlio di un nodo
1XmlNode XmlDocument.appendChild(XmlNode newChild);
Parametri di chiamata:
- newChild:XmlNode, specificare il nodo aggiunto
Risultati restituiti:
- XmlNode, restituisce questo nuovo nodo figlio
Se newChild esiste già nell'albero del documento, verrà rimosso dall'albero del documento e reinserito nella sua nuova posizione. I nodi di un documento (o i nodi creati da un documento) non possono essere inseriti in un altro documento. Cioè, l'attributoownerDocument di newChild deve essere uguale all'attributoownerDocument del nodo corrente.
replaceChild
Sostituisci un nodo figlio con un altro
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
Parametri di chiamata:
Risultati restituiti:
- XmlNode, Se la sostituzione ha esito positivo, questo metodo può restituire il nodo sostituito. Se la sostituzione fallisce, restituisce null.
Se newChild esiste già nell'albero del documento, verrà rimosso dall'albero del documento e reinserito nella sua nuova posizione. I nodi di un documento (o i nodi creati da un documento) non possono essere inseriti in un altro documento. Cioè, l'attributoownerDocument di newChild deve essere uguale all'attributoownerDocument del nodo corrente.
removeChild
Rimuovere un nodo dall'elenco dei nodi figlio
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
Parametri di chiamata:
- oldChild:XmlNode, specifica il nodo da eliminare
Risultati restituiti:
- XmlNode, Se l'eliminazione ha esito positivo, questo metodo può restituire il nodo eliminato. Se fallisce, restituisce null.
toString
Restituisce la rappresentazione in formato stringa dell'oggetto. Generalmente viene restituito "[Oggetto nativo]". L'oggetto può essere reimplementato in base alle proprie caratteristiche.
1String XmlDocument.toString();
Risultati restituiti:
- String, restituisce la rappresentazione di stringa dell'oggetto
toJSON
Restituisce una rappresentazione in formato JSON dell'oggetto, generalmente restituendo una raccolta di proprietà leggibili definite dall'oggetto.
1Value XmlDocument.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultati restituiti:
- Value, restituisce un valore contenente JSON serializzabile