Objekt integriertes Objekt

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:

  1. Erstellen Sie Elementknoten, Textknoten, Kommentare, Verarbeitungsanweisungen usw.
  2. Auf Dokumenteigenschaften und zugehörige Informationen (z. B. DTD-Kommentare und Dokumentdeklarationen) zugreifen und diese ändern.
  3. 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 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}`);

Im obigen Code verwenden wir zunächst fsdie 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 XmlDocumentzuzuweisen xmlDoc. Schließlich verwenden wir das Attribut xmlDocvon, documentElementum 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.xmlStandalonekö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

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

1
readonly String XmlDocument.inputEncoding;

xmlStandalone

Boolescher Wert, legt fest oder gibt zurück, ob das Dokument eigenständig ist

1
Boolean XmlDocument.xmlStandalone;

xmlVersion

String, legt die XML-Version des Dokuments fest oder gibt sie zurück

1
String XmlDocument.xmlVersion;

doctype

XmlDocumentType, gibt die Dokumenttypdeklaration zurück, die sich auf das Dokument bezieht

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

1
readonly XmlElement XmlDocument.documentElement;

XmlElement, gibt den Kopfknoten des HTML-Dokuments zurück, nur gültig im HTML-Modus

1
readonly XmlElement XmlDocument.head;

title

String, gibt den Inhalt des Titelknotens des HTML-Dokuments zurück, nur gültig im HTML-Modus

1
readonly String XmlDocument.title;

body

XmlElement, gibt den Hauptknoten des HTML-Dokuments zurück, nur gültig im HTML-Modus

1
readonly XmlElement XmlDocument.body;

nodeType

Ganzzahl, gibt den Knotentyp des Knotens zurück

1
readonly Integer XmlDocument.nodeType;

Der Knotentyp verschiedener Objekte gibt unterschiedliche Werte zurück:


nodeName

String gibt den Namen des Knotens entsprechend seinem Typ zurück

1
readonly String XmlDocument.nodeName;

Der Knotenname verschiedener Objekte gibt unterschiedliche Werte zurück:


nodeValue

String gibt den Namen des Knotens entsprechend seinem Typ zurück

1
String XmlDocument.nodeValue;

Der Knotenname verschiedener Objekte gibt unterschiedliche Werte zurück:


ownerDocument

XmlDocument, gibt das Stammelement des Knotens zurück (XmlDocument-Objekt)

1
readonly XmlDocument XmlDocument.ownerDocument;

parentNode

XmlNode, kann den übergeordneten Knoten eines Knotens zurückgeben

1
readonly XmlNode XmlDocument.parentNode;

childNodes

XmlNodeList, gibt die Knotenliste der untergeordneten Knoten des angegebenen Knotens zurück

1
readonly XmlNodeList XmlDocument.childNodes;

children

XmlNodeList, gibt die Knotenliste der untergeordneten Elementknoten des angegebenen Knotens zurück.

1
readonly XmlNodeList XmlDocument.children;

firstChild

XmlNode, gibt den ersten untergeordneten Knoten des Knotens zurück

1
readonly XmlNode XmlDocument.firstChild;

lastChild

XmlNode, gibt den letzten untergeordneten Knoten des Knotens zurück

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

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

1
readonly XmlNode XmlDocument.nextSibling;

firstElementChild

XmlNode, gibt den ersten untergeordneten Elementknoten des Knotens zurück

1
readonly XmlNode XmlDocument.firstElementChild;

lastElementChild

XmlNode, gibt den letzten untergeordneten Elementknoten des Knotens zurück

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

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

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

1
String XmlDocument.textContent;

Mitgliedsfunktion

load

Das Dokument wird durch Parsen einer XML/HTML-Zeichenfolge erstellt. Mehrsprachigkeit wird nicht unterstützt.

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

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

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

1
XmlElement XmlDocument.getElementById(String id);

Aufrufparameter:

  • id: String, die abzurufende ID

Rückgabeergebnisse:

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

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

1
XmlElement XmlDocument.createElement(String tagName);

Aufrufparameter:

  • tagName: String, gibt den angegebenen Namen des Elementknotens an

Rückgabeergebnisse:


createElementNS

Erstellt einen Elementknoten mit dem angegebenen Namespace

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


createTextNode

Textknoten erstellen

1
XmlText XmlDocument.createTextNode(String data);

Aufrufparameter:

  • data: String, gibt den Text dieses Knotens an

Rückgabeergebnisse:

  • XmlText, gibt das neu erstellte zurückXmlTextKnoten, der die angegebene Datenzeichenfolge darstellt

createComment

Anmerkungsknoten erstellen

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

1
XmlCDATASection XmlDocument.createCDATASection(String data);

Aufrufparameter:

  • data: String, gibt an, dass dieser Knoten CDATA-Daten angibt

Rückgabeergebnisse:


createProcessingInstruction

erstellenXmlProcessingInstructionKnoten

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


hasChildNodes

Fragen Sie ab, ob untergeordnete Knoten vorhanden sind

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

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

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

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

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

1
XmlNode 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 2
XmlNode XmlDocument.replaceChild(XmlNode newChild, XmlNode oldChild);

Aufrufparameter:

  • newChild:XmlNode, geben Sie den neuen Knoten an
  • oldChild:XmlNode, gibt den zu ersetzenden Knoten an

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

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

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

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

Aufrufparameter:

  • key: Zeichenfolge, nicht verwendet

Rückgabeergebnisse:

  • Value, gibt einen Wert zurück, der JSON serialisierbar enthält