XML DOM-Knoten ansprechen

Durch DOM können Sie jeden Knoten im XML-Dokument erreichen.

Knotenansicht

Sie können Knoten auf drei Arten erreichen:

  • Durch die Verwendung der Methode getElementsByTagName()
  • Durch das Durchlaufen (Bereisen) des Knotenbaums
  • Durch Navigation im Knotenbaum durch das Verwenden der Beziehung zwischen Knoten

getElementsByTagName() Methode

getElementsByTagName() Gibt alle Elemente mit dem angegebenen Tagnamen zurück.

Syntax

node.getElementsByTagName("tagname");

Beispiel

Das folgende Beispiel gibt alle <title>-Elemente unter dem x-Element zurück:

x.getElementsByTagName("title");

Bitte beachten Sie, dass der obige Beispiel nur die <title>-Elemente unter den x-Knoten zurückgibt. Um alle <title>-Elemente im XML-Dokument zurückzugeben, verwenden Sie bitte:

xmlDoc.getElementsByTagName("title");

Hierbei,xmlDoc ist das Dokument selbst (Dokumentknoten).

DOM Knotenliste

getElementsByTagName() 方法返回节点列表(node list)。节点列表是节点的数组。

Die Methode gibt eine Knotenliste (Node-Liste) zurück. Eine Knotenliste ist ein Array von Knoten.

x = xmlDoc.getElementsByTagName("title");

Durch die Indexnummer kann auf das <title>-Element in x zugegriffen werden. Um das dritte <title> zu erreichen, schreiben Sie wie folgt:

y = x[2];Anmerkung:

Versuchen Sie es selbst

Der Index beginnt bei 0.

Sie können das Attribut Länge der DOM-Knotenliste

Attribute verwenden, um die Länge der Knotenliste (Anzahl der Knoten) zu definieren. Sie können das Attribut length

Beispiel

Attribute, um die Knotenliste zu durchlaufen:
for (i = 0; i < x.length; i++) {
  var x = xmlDoc.getElementsByTagName("title");
  }

Versuchen Sie es selbst

// Hier kann Code zum Verarbeiten jedes Knotens geschrieben werden

Knotentyp Knoten des XML-Dokuments documentElement

Attribute sind der Name des Knotens. Attribute sind der Wurzelknoten. nodeName

Attribute sind der Name des Knotens. nodeType Attribute sind der Typ des Knotens.

Sie werden im nächsten Kapitel dieses Tutorials mehr über Knotenattribute lernen.

Versuchen Sie es selbst

Knoten durchlaufen

Das folgende Codebeispiel durchläuft die Kindknoten des Wurzelknotens (ebenfalls Elementknoten):

Beispiel

txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
  // Nur Elementknoten (Typ 1) verarbeiten
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

Versuchen Sie es selbst

Beispiel erläutert:

  1. Voraussetzung: Sie haben "books.xml" laden in xmlDoc
  2. Abfrage der Kindknoten des Wurzelelements (xmlDoc)
  3. Check the node type of each child node. If the node type is "1" ist ein Elementknoten
  4. Wenn es sich um einen Elementknoten handelt, wird der Knotenname ausgegeben

Navigation der Knotenverhältnisse

Das folgende Codebeispiel navigiert durch das Knotenverhältnis im Knotenbaum:

Beispiel

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i < xlen; i++) {
  // Nur Elementknoten (Typ 1) verarbeiten
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

Versuchen Sie es selbst

Beispiel erläutert:

  1. Voraussetzung: Sie haben "books.xml" laden in xmlDoc
  2. Abfrage der Kindknoten des ersten 'book'-Elements
  3. Set the variable "y" to the first child node of the first book element
  4. For each child node (from the first child node "y" (start):
  5. Check the node type of each child node. If the node type is "1is an element node
  6. If it is an element node, then output the name of the node
  7. to the next sibling node and run the loop againySet the variable "