XML DOM - Knoten aufrufen

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

Beispiel

Im folgenden Beispiel wird eine XML-Datei verwendet books.xml.

Funktion loadXMLDoc(), located in external JavaScript, used to load XML files.

Durch die Verwendung des Indexes in der Knotenliste, um Knoten zu erreichen
In diesem Beispiel wird die Methode getElementsByTagname() verwendet, um das dritte <title>-Element in "books.xml" zu erhalten.
Durch die length-Eigenschaft, um Knoten zu durchlaufen
In diesem Beispiel wird die length-Eigenschaft verwendet, um alle <title>-Elemente in "books.xml" zu durchlaufen.
Den Knotentyp des Elements anzeigen
In diesem Beispiel wird die nodeType-Eigenschaft verwendet, um den Knotentyp des Wurzelelements in "books.xml" zu erhalten.
Durchlaufen von Elementknoten
In diesem Beispiel wird die nodeType-Eigenschaft verwendet, um Elementknoten in "books.xml" zu verarbeiten.
Durch die Nutzung der Knotenbeziehungen, um Elementknoten zu durchlaufen
In diesem Beispiel wird die nodeType-Eigenschaft und die nextSibling-Eigenschaft verwendet, um Elementknoten in "books.xml" zu verarbeiten.

Knoten erreichen

Sie können Knoten auf drei verschiedene Weisen erreichen:

  1. Durch die Verwendung der Methode getElementsByTagName()
  2. Durch das Durchlaufen (Bereisen) der Knotenstruktur
  3. Durch Nutzung der Beziehung zwischen Knoten in der Knotenstruktur navigieren

getElementsByTagName() Methode

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

Grammatik

node.getElementsByTagName("tagname");

Beispiel

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

x.getElementsByTagName("title");

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

xmlDoc.getElementsByTagName("title");

Hierbei ist xmlDoc das Dokument selbst (Dokument-Knoten).

DOM Node List

getElementsByTagName() Methode, um eine Knotenliste (Node List) zurückzugeben. Eine Knotenliste ist ein Array von Knoten.

Die folgenden Codezeilen verwenden loadXMLDoc() Setze "books.xml"Laden Sie xmlDoc" in einer Variable x speichern, die eine Liste von <title>-Knoten enthält:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Durch Index kann auf das <title>-Element in x zugegriffen werden. Um auf das dritte <title> zuzugreifen, können Sie schreiben:

y=x[2];

TIY

Anmerkung:Die Indizes beginnen bei 0.

In einem späteren Kapitel dieses Tutorials werden Sie mehr über Node List lernen.

DOM Node List Length

Die length-Eigenschaft definiert die Länge der Knotenliste (d.h. die Anzahl der Knoten).

Sie können eine Knotenliste durch die Verwendung der length-Eigenschaft durchlaufen:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");
for (i=0;i<x.length;i++)
  { 
  document.write(x[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

Beispiel-Erklärung:

  1. Verwenden Sie loadXMLDoc() Setze "books.xml"Laden Sie xmlDoc"
  2. Erhalten Sie alle <title>-Element-Knoten
  3. Geben Sie den Wert des Textknotens jedes <title>-Elements aus

TIY

Node Type

XML-Dokument documentElement Attribute ist der Wurzel-Knoten.

Attribute des Knotens nodeName Attribute ist der Knoten-Name.

Attribute des Knotens nodeType Attribute sind der Knoten-Typ.

Sie werden im nächsten Abschnitt dieses Tutorials mehr über Knoten-Attribute lernen.

TIY

Durchlaufen Sie den Knoten

Die folgenden Codezeilen durchlaufen die Unter-Knoten des Wurzel-Knotens, die ebenfalls Element-Knoten sind:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
  if (x[i].nodeType==1)
  {//Bearbeite nur Elementknoten (Typ 1) 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

Beispiel-Erklärung:

  1. Durch die Nutzung loadXMLDoc() Setze "books.xml"Lade xmlDoc"
  2. Erhalten Sie die Unter-Knoten des Wurzel-Elements
  3. Prüfen Sie den Knoten-Typ jedes Unter-Knotens. Wenn der Knoten-Typ "1" ist, dann ist es ein Element-Knoten
  4. Wenn es sich um einen Elementknoten handelt, gibt den Namen des Knotens aus

TIY

Navigieren durch das Knotenverhältnis

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

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
  {//Bearbeite nur Elementknoten (Typ 1)
  document.write(y.nodeName + "<br />");
  }
y=y.nextSibling;
}
  1. Durch die Nutzung loadXMLDoc() Setze "books.xml"Lade xmlDoc"
  2. Erhalte den ersten Kindknoten des ersten "book"-Elements
  3. Setze "y" auf den ersten Kindknoten des ersten "book"-Elements
  4. Überprüfe den Knotentyp jeder Unter节点, wenn der Knotentyp "1" ist, dann ist es ein Elementknoten
  5. Wenn es sich um einen Elementknoten handelt, gibt den Namen des Knotens aus
  6. Setze "y" auf den nächsten gleichartigen Knoten und führe den Zyklus erneut aus

TIY