ObjectXmlDocument
XmlDocument ist xmlEin Objekt des Moduls, das das gesamte XML-Dokument darstellt und Zugriff auf das gesamte Dokument ermöglicht.
XmlDocument ist die Wurzel eines Dokumentbaums und enthält alle Knoten im gesamten XML-Dokument. Das XmlDocument-Objekt stellt außerdem die folgenden Funktionen bereit:
- Erstellen Sie Elementknoten, Textknoten, Kommentare, Verarbeitungsanweisungen usw.
- Auf Dokumenteigenschaften und zugehörige Informationen (z. B. DTD-Kommentare und Dokumentdeklarationen) zugreifen und diese ändern.
- XML-Dokumente analysieren
Im Folgenden finden Sie Beispielcode, der das XmlDocument-Objekt zum Parsen eines XML-Dokuments verwendet:
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}`);
Im obigen Code verwenden wir zunächst fs
die Modulmethode readFile()
, um eine XML-Datei zu lesen und den Dateistream der Variablen zuzuweisen xmlStr
. Dann verwenden wir [xml](../../module/ifs/xml.md)
die Methode des Moduls , um die XML-Datei zu analysieren und das parse()
analysierte Objekt einer Variablen XmlDocument
zuzuweisen xmlDoc
. Schließlich verwenden wir das Attribut xmlDoc
von, documentElement
um den Dokumentstammknoten abzurufen, seinen Knotennamen abzurufen und ihn an die Konsole auszugeben.
Da XmlDocument der Eingang zum gesamten XML-Dokument ist, können wir darüber dokumentbezogene Informationen abrufen und ändern. Beispielsweise können wir die XML-Version und die eigenständigen Attribute des Dokuments über bzw. abrufen und ändern xmlDoc.xmlVersion
. Mit dieser Methode xmlDoc.xmlStandalone
können wir auch xmlDoc.createProcessingInstruction()
neue Verarbeitungsanweisungsknoten erstellen.
Das XmlDocument-Objekt ist ein sehr leistungsfähiger Typ, der uns die Verarbeitung und Analyse von XML-Dateien sehr erleichtert.
Erbschaftsverhältnis
Konstrukteur
XmlDocument
Konstruieren Sie ein XmlDocument-Objekt
1new XmlDocument(String type = "text/xml");
Aufrufparameter:
- type: String, gibt den Typ des Dokumentobjekts an, der Standardwert ist „text/“xml"Wenn Sie HTML verarbeiten müssen, müssen Sie "text/html" angeben.
Mitgliedereigenschaften
inputEncoding
String, gibt die für das Dokument verwendete Codierung zurück (beim Parsen)
1readonly String XmlDocument.inputEncoding;
xmlStandalone
Boolescher Wert, legt fest oder gibt zurück, ob das Dokument eigenständig ist
1Boolean XmlDocument.xmlStandalone;
xmlVersion
String, legt die XML-Version des Dokuments fest oder gibt sie zurück
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, gibt die Dokumenttypdeklaration zurück, die sich auf das Dokument bezieht
1readonly XmlDocumentType XmlDocument.doctype;
Für XML-Dokumente ohne DTD wird null zurückgegeben. Diese Eigenschaft bietetXmlDocumentTypeDirekter Zugriff auf das Objekt (ein untergeordneter Knoten von XmlDocument).
documentElement
XmlElement, gibt den Wurzelknoten des Dokuments zurück
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, gibt den Kopfknoten des HTML-Dokuments zurück, nur gültig im HTML-Modus
1readonly XmlElement XmlDocument.head;
title
String, gibt den Inhalt des Titelknotens des HTML-Dokuments zurück, nur gültig im HTML-Modus
1readonly String XmlDocument.title;
body
XmlElement, gibt den Hauptknoten des HTML-Dokuments zurück, nur gültig im HTML-Modus
1readonly XmlElement XmlDocument.body;
nodeType
Ganzzahl, gibt den Knotentyp des Knotens zurück
1readonly Integer XmlDocument.nodeType;
Der Knotentyp verschiedener Objekte gibt unterschiedliche Werte zurück:
- 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 gibt den Namen des Knotens entsprechend seinem Typ zurück
1readonly String XmlDocument.nodeName;
Der Knotenname verschiedener Objekte gibt unterschiedliche Werte zurück:
- XmlElement:Elementname
- XmlAttr: Attributname
- XmlText: #text
- XmlCDATASection: #cdata-Abschnitt
- XmlProcessingInstruction: Gibt das angegebene Ziel zurück
- XmlComment: #Kommentar
- XmlDocument: #dokumentieren
- XmlDocumentType: Name des Dokumenttyps
nodeValue
String gibt den Namen des Knotens entsprechend seinem Typ zurück
1String XmlDocument.nodeValue;
Der Knotenname verschiedener Objekte gibt unterschiedliche Werte zurück:
- XmlElement: Null
- XmlAttr: Attributwert
- XmlText: der Inhalt des Knotens
- XmlCDATASection: der Inhalt des Knotens
- XmlProcessingInstruction: Gibt die angegebenen Inhaltsdaten zurück
- XmlComment: Anmerkungstext
- XmlDocument: Null
- XmlDocumentType: Null
ownerDocument
XmlDocument, gibt das Stammelement des Knotens zurück (XmlDocument-Objekt)
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, kann den übergeordneten Knoten eines Knotens zurückgeben
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, gibt die Knotenliste der untergeordneten Knoten des angegebenen Knotens zurück
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, gibt die Knotenliste der untergeordneten Elementknoten des angegebenen Knotens zurück.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, gibt den ersten untergeordneten Knoten des Knotens zurück
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, gibt den letzten untergeordneten Knoten des Knotens zurück
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, gibt den Knoten zurück, der einem Knoten unmittelbar vorangeht (auf derselben Baumebene). Wenn kein solcher Knoten vorhanden ist, gibt diese Eigenschaft null zurück.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode, gibt den Knoten zurück, der unmittelbar auf ein Element folgt (in derselben Baumebene). Wenn kein solcher Knoten vorhanden ist, gibt das Attribut null zurück.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, gibt den ersten untergeordneten Elementknoten des Knotens zurück
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, gibt den letzten untergeordneten Elementknoten des Knotens zurück
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, gibt den Elementknoten zurück, der einem Knoten unmittelbar vorangeht (auf derselben Baumebene). Wenn kein solcher Knoten vorhanden ist, gibt diese Eigenschaft null zurück.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, gibt den Elementknoten zurück, der unmittelbar auf ein Element folgt (in derselben Baumebene). Wenn kein solcher Knoten vorhanden ist, gibt das Attribut null zurück.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
String, fragt den Text des ausgewählten Elements ab und legt ihn fest. Gibt beim Abfragen die Werte aller Textknoten innerhalb des Elementknotens zurück; beim Festlegen werden alle untergeordneten Knoten gelöscht und durch einen einzelnen Textknoten ersetzt.
1String XmlDocument.textContent;
Mitgliedsfunktion
load
Das Dokument wird durch Parsen einer XML/HTML-Zeichenfolge erstellt. Mehrsprachigkeit wird nicht unterstützt.
1XmlDocument.load(String source);
Aufrufparameter:
- source: String, der zu analysierende XML-/HTML-Text, abhängig vom Typ beim Erstellen des Dokuments
Das Dokument wird durch Parsen einer binären XML/HTML-Zeichenfolge erstellt und automatisch entsprechend der Sprache konvertiert.
1XmlDocument.load(Buffer source);
Aufrufparameter:
- source:Buffer, der zu analysierende XML-/HTML-Text, abhängig von der Art des Dokuments, als es erstellt wurde
getElementsByTagName
Gibt eine Knotenliste mit allen Elementen mit dem angegebenen Namen zurück
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
Aufrufparameter:
- tagName: String, der abzurufende Tag-Name. Der Wert „*“ entspricht allen Tags
Rückgabeergebnisse:
- XmlNodeList, mit dem angegebenen Tag im DokumentbaumXmlElementKnotenXmlNodeListversammeln. Die Reihenfolge der zurückgegebenen Elementknoten entspricht der Reihenfolge, in der sie im Quelldokument erscheinen.
Diese Methode gibt a zurückXmlNodeListObjekt (kann als schreibgeschütztes Array verarbeitet werden), das alle Tags im Dokument mit dem angegebenen Tag-Namen speichertXmlElementKnoten werden in der Reihenfolge gespeichert, in der sie im Quelldokument erscheinen.XmlNodeListDas Objekt ist „live“, d. h. wenn ein Element mit dem angegebenen Tag-Namen im Dokument hinzugefügt oder gelöscht wird, wird sein Inhalt bei Bedarf automatisch aktualisiert.
getElementsByTagNameNS
Gibt eine Knotenliste aller Elemente mit dem angegebenen Namespace und Namen zurück
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
Aufrufparameter:
- namespaceURI: String, gibt den abzurufenden Namespace-URI an. Der Wert „*“ entspricht allen Tags
- localName: String, der abzurufende Tag-Name. Der Wert „*“ entspricht allen Tags
Rückgabeergebnisse:
- XmlNodeList, mit dem angegebenen Tag im DokumentbaumXmlElementKnotenXmlNodeListversammeln. Die Reihenfolge der zurückgegebenen Elementknoten entspricht der Reihenfolge, in der sie im Quelldokument erscheinen.
Diese Methode ähnelt der Methode getElementsByTagName(), außer dass sie Elemente basierend auf Namespace und Name abruft.
getElementById
Gibt das Element mit dem angegebenen ID-Attribut zurück
1XmlElement XmlDocument.getElementById(String id);
Aufrufparameter:
- id: String, die abzurufende ID
Rückgabeergebnisse:
- XmlElement, mit dem angegebenen ID-Attribut im KnotenbaumXmlElementKnoten
Diese Methode durchläuft die untergeordneten Knoten des Dokuments und gibt a zurückXmlElementEin Knotenobjekt, das das erste Dokumentelement mit dem angegebenen ID-Attribut darstellt. .
getElementsByClassName
Gibt eine Knotenliste aller Elemente mit dem angegebenen Klassennamen zurück
1XmlNodeList XmlDocument.getElementsByClassName(String className);
Aufrufparameter:
- className: String, der abzurufende Klassenname
Rückgabeergebnisse:
- XmlNodeList, mit dem angegebenen Klassennamen im DokumentbaumXmlElementKnotenXmlNodeListversammeln. Die Reihenfolge der zurückgegebenen Elementknoten entspricht der Reihenfolge, in der sie im Quelldokument erscheinen.
Diese Methode gibt a zurückXmlNodeListObjekt (kann als schreibgeschütztes Array verarbeitet werden), das alle Dateien mit dem angegebenen Klassennamen im Dokument speichertXmlElementKnoten werden in der Reihenfolge gespeichert, in der sie im Quelldokument erscheinen.XmlNodeListDas Objekt ist „live“, d. h. wenn ein Element mit dem angegebenen Tag-Namen im Dokument hinzugefügt oder gelöscht wird, wird sein Inhalt bei Bedarf automatisch aktualisiert.
createElement
Elementknoten erstellen
1XmlElement XmlDocument.createElement(String tagName);
Aufrufparameter:
- tagName: String, gibt den angegebenen Namen des Elementknotens an
Rückgabeergebnisse:
- XmlElement, gibt das neu erstellte zurückXmlElementKnoten mit dem angegebenen Labelnamen
createElementNS
Erstellt einen Elementknoten mit dem angegebenen Namespace
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
Aufrufparameter:
- namespaceURI: String, gibt den Elementknoten-Namespace-URI an
- qualifiedName: String, gibt den angegebenen Namen des Elementknotens an
Rückgabeergebnisse:
- XmlElement, gibt das neu erstellte zurückXmlElementKnoten mit dem angegebenen Labelnamen
createTextNode
Textknoten erstellen
1XmlText XmlDocument.createTextNode(String data);
Aufrufparameter:
- data: String, gibt den Text dieses Knotens an
Rückgabeergebnisse:
createComment
Anmerkungsknoten erstellen
1XmlComment XmlDocument.createComment(String data);
Aufrufparameter:
- data: String, gibt den Kommentartext dieses Knotens an
Rückgabeergebnisse:
- XmlComment, gibt das neu erstellte zurückXmlCommentKnoten, der Kommentartext sind die angegebenen Daten
createCDATASection
erstellenXmlCDATASectionKnoten
1XmlCDATASection XmlDocument.createCDATASection(String data);
Aufrufparameter:
- data: String, gibt an, dass dieser Knoten CDATA-Daten angibt
Rückgabeergebnisse:
- XmlCDATASection, gibt das neu erstellte zurückXmlCDATASectionKnoten, der Inhalt sind die angegebenen Daten
createProcessingInstruction
erstellenXmlProcessingInstructionKnoten
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
Aufrufparameter:
- target: String, gibt das Ziel der Verarbeitungsanweisung an
- data: String, gibt den Inhaltstext der Verarbeitungsanweisung an
Rückgabeergebnisse:
- XmlProcessingInstruction, der neu erstellte ProcessingInstruction-Knoten
hasChildNodes
Fragen Sie ab, ob untergeordnete Knoten vorhanden sind
1Boolean XmlDocument.hasChildNodes();
Rückgabeergebnisse:
- Boolean, gibt „true“ zurück, wenn es untergeordnete Knoten gibt, andernfalls wird „false“ zurückgegeben
normalize
Benachbarte Textknoten zusammenführen und leere Textknoten löschen
1XmlDocument.normalize();
Diese Methode durchläuft alle Nachkommenknoten des aktuellen Knotens und normalisiert das Dokument, indem leere Textknoten gelöscht und alle angrenzenden Textknoten zusammengeführt werden. Diese Methode ist nützlich, um die Struktur des Dokumentbaums nach dem Einfügen oder Löschen von Knoten zu vereinfachen.
cloneNode
Erstellt eine exakte Kopie des angegebenen Knotens
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
Aufrufparameter:
- deep: Boolescher Wert, ob tief kopiert werden soll. Wenn true, klont der geklonte Knoten alle untergeordneten Knoten des ursprünglichen Knotens
Rückgabeergebnisse:
- XmlNode, gibt den kopierten Knoten zurück
Diese Methode kopiert den Knoten, auf dem sie aufgerufen wurde, und gibt eine Kopie zurück. Wenn das übergebene Argument wahr ist, werden auch alle Nachkommenknoten des aktuellen Knotens rekursiv kopiert. Andernfalls wird nur der aktuelle Knoten kopiert. Der zurückgegebene Knoten gehört nicht zum Dokumentbaum und seine parentNode-Eigenschaft ist null. Wenn ein Elementknoten kopiert wird, werden alle seine Eigenschaften kopiert.
lookupPrefix
Gibt das Präfix zurück, das dem angegebenen Namespace-URI auf dem aktuellen Knoten entspricht
1String XmlDocument.lookupPrefix(String namespaceURI);
Aufrufparameter:
- namespaceURI: String, gibt den passenden Namespace-URI an
Rückgabeergebnisse:
- String, gibt das passende Präfix zurück, gibt null zurück, wenn es nicht übereinstimmt.
lookupNamespaceURI
Gibt den Namespace-URI zurück, der dem angegebenen Präfix auf dem aktuellen Knoten entspricht
1String XmlDocument.lookupNamespaceURI(String prefix);
Aufrufparameter:
- prefix: String, gibt das passende Präfix an
Rückgabeergebnisse:
- String, gibt den passenden Namespace-URI zurück, gibt null zurück, wenn er nicht übereinstimmt.
insertBefore
Fügen Sie einen neuen untergeordneten Knoten vor einem vorhandenen untergeordneten Knoten ein
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
Aufrufparameter:
- newChild:XmlNode, neuen Knoten einfügen
- refChild:XmlNode, fügen Sie vor diesem Knoten einen neuen Knoten ein
Rückgabeergebnisse:
- XmlNode, gibt den neuen untergeordneten Knoten zurück
Wenn newChild bereits im Dokumentbaum vorhanden ist, wird es aus dem Dokumentbaum entfernt und an seiner neuen Position wieder eingefügt. Knoten aus einem Dokument (oder von einem Dokument erstellte Knoten) können nicht in ein anderes Dokument eingefügt werden. Das heißt, das Attribut „ownerDocument“ von „newChild“ muss mit dem Attribut „ownerDocument“ des aktuellen Knotens identisch sein.
insertAfter
Fügen Sie einen neuen untergeordneten Knoten nach einem vorhandenen untergeordneten Knoten ein
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
Aufrufparameter:
- newChild:XmlNode, neuen Knoten einfügen
- refChild:XmlNode, fügen Sie nach diesem Knoten einen neuen Knoten ein
Rückgabeergebnisse:
- XmlNode, gibt den neuen untergeordneten Knoten zurück
Wenn newChild bereits im Dokumentbaum vorhanden ist, wird es aus dem Dokumentbaum entfernt und an seiner neuen Position wieder eingefügt. Knoten aus einem Dokument (oder von einem Dokument erstellte Knoten) können nicht in ein anderes Dokument eingefügt werden. Das heißt, das Attribut „ownerDocument“ von „newChild“ muss mit dem Attribut „ownerDocument“ des aktuellen Knotens identisch sein.
appendChild
Fügt am Ende der Liste der untergeordneten Knoten eines Knotens einen neuen untergeordneten Knoten hinzu
1XmlNode XmlDocument.appendChild(XmlNode newChild);
Aufrufparameter:
- newChild:XmlNodeGeben Sie den hinzugefügten Knoten an
Rückgabeergebnisse:
- XmlNode, gibt diesen neuen untergeordneten Knoten zurück
Wenn newChild bereits im Dokumentbaum vorhanden ist, wird es aus dem Dokumentbaum entfernt und an seiner neuen Position wieder eingefügt. Knoten aus einem Dokument (oder von einem Dokument erstellte Knoten) können nicht in ein anderes Dokument eingefügt werden. Das heißt, das Attribut „ownerDocument“ von „newChild“ muss mit dem Attribut „ownerDocument“ des aktuellen Knotens identisch sein.
replaceChild
Ersetzen Sie einen untergeordneten Knoten durch einen anderen
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
Aufrufparameter:
Rückgabeergebnisse:
- XmlNodeWenn die Ersetzung erfolgreich ist, kann diese Methode den ersetzten Knoten zurückgeben. Wenn die Ersetzung fehlschlägt, gibt sie null zurück.
Wenn newChild bereits im Dokumentbaum vorhanden ist, wird es aus dem Dokumentbaum entfernt und an seiner neuen Position wieder eingefügt. Knoten aus einem Dokument (oder von einem Dokument erstellte Knoten) können nicht in ein anderes Dokument eingefügt werden. Das heißt, das Attribut „ownerDocument“ von „newChild“ muss mit dem Attribut „ownerDocument“ des aktuellen Knotens identisch sein.
removeChild
Entfernen Sie einen Knoten aus der Liste der untergeordneten Knoten
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
Aufrufparameter:
- oldChild:XmlNode, gibt den zu löschenden Knoten an
Rückgabeergebnisse:
- XmlNode, Wenn der Löschvorgang erfolgreich ist, kann diese Methode den gelöschten Knoten zurückgeben. Wenn dies fehlschlägt, gibt sie null zurück.
toString
Gibt die Zeichenfolgendarstellung des Objekts zurück. Im Allgemeinen wird „[Native Object]“ zurückgegeben. Das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden.
1String XmlDocument.toString();
Rückgabeergebnisse:
- String, gibt die Zeichenfolgendarstellung des Objekts zurück
toJSON
Gibt eine Darstellung des Objekts im JSON-Format zurück und gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die vom Objekt definiert werden.
1Value XmlDocument.toJSON(String key = "");
Aufrufparameter:
- key: Zeichenfolge, nicht verwendet
Rückgabeergebnisse:
- Value, gibt einen Wert zurück, der JSON serialisierbar enthält