XML DOM - Zugriff auf Knoten
Mit DOM können Sie auf jeden Knoten in einem XML-Dokument zugreifen.
Probieren Sie es selbst aus – Beispiel
Das folgende Beispiel verwendet eine XML-Datei。
FunktionloadXMLDoc(), die sich in externem JavaScript befindet, wird verwendet, um die XML-Datei zu laden.
Verwenden Sie die Indexnummer in der Knotenliste, um auf Knoten zuzugreifen.
Dieses Beispiel verwendet die Methode getElementsByTagname(), um das dritte <title>-Element in "books.xml" abzurufen.
Verwenden Sie die length-Eigenschaft, um Knoten zu durchlaufen.
Dieses Beispiel verwendet die length-Eigenschaft, um alle <title>-Elemente in "books.xml" zu durchlaufen.
Dieses Beispiel verwendet die nodeType-Eigenschaft, um den Knotentyp des Wurzelelements in "books.xml" abzurufen.
Dieses Beispiel verwendet die nodeType-Eigenschaft, um Elementknoten in "books.xml" zu verarbeiten.
Verwenden Sie Knotenbeziehungen, um Elementknoten zu durchlaufen
Dieses Beispiel verwendet die nodeType-Eigenschaft und die nextSibling-Eigenschaft, um Elementknoten in "books.xml" zu verarbeiten.
Zugriff auf Knoten
Sie können auf drei Arten auf Knoten zugreifen:
1. Durch die Verwendung der Methode getElementsByTagName().
2. Durch Schleifen (Durchlaufen) durch den Knotenbaum.
3. Durch Navigieren im Knotenbaum mithilfe der Beziehungen zwischen Knoten.
getElementsByTagName()-Methode
getElementsByTagName() gibt alle Elemente mit dem angegebenen Tag-Namen zurück.
Syntax
Beispiel
Das folgende Beispiel gibt alle <title>-Elemente unter dem x-Element zurück:
Beachten Sie, dass das obige Beispiel nur die <title>-Elemente unter dem x-Knoten zurückgibt. Um alle <title>-Elemente im XML-Dokument zurückzugeben, verwenden Sie:
Hier ist xmlDoc das Dokument selbst (der Dokumentknoten).
DOM-Knotenliste
Die Methode getElementsByTagName() gibt eine Knotenliste zurück. Die Knotenliste ist ein Array von Knoten.
Der folgende Code verwendetloadXMLDoc(), um "" in xmlDoc zu laden, und speichert dann eine Liste von <title>-Knoten in der Variablen x:
x=xmlDoc.getElementsByTagName("title");
Sie können auf die <title>-Elemente in x über die Indexnummer zugreifen. Um auf das dritte <title> zuzugreifen, können Sie schreiben:
Hinweis:Der Index beginnt bei 0.
Sie werden in späteren Kapiteln dieses Tutorials mehr über Knotenlisten erfahren.
Länge der DOM-Knotenliste (Länge der Knotenliste)
Die Eigenschaft length definiert die Länge der Knotenliste (d. h. die Anzahl der Knoten).
Sie können die Knotenliste durchlaufen, indem Sie die length-Eigenschaft verwenden:
Beispiel
Selbst ausprobieren »
Beispielerklärung:
- VerwendungloadXMLDoc()lade "" in xmlDoc
- Alle <title>-Elementknoten abrufen
- Geben Sie den Wert des Textknotens jedes <title>-Elements aus
Knotentypen
des XML-DokumentsdocumentElementDas Attribut ist der Wurzelknoten.
des KnotensnodeNameDie nodeName-Eigenschaft ist der Name eines Knotens.
des KnotensnodeTypeDie nodeType-Eigenschaft ist der Typ eines Knotens.
Sie werden mehr über Knoteneigenschaften im nächsten Kapitel dieses Tutorials lernen.
Knoten durchlaufen
Der folgende Code durchläuft die Kindknoten des Wurzelknotens, die auch Elementknoten sind:
Beispiel
Selbst ausprobieren »
Beispielerklärung:
- VerwendungloadXMLDoc()lade "" in xmlDoc
- Die untergeordneten Knoten des Wurzelelements abrufen
- Überprüfen Sie den Knotentyp jedes untergeordneten Knotens. Wenn der Knotentyp "1" ist, handelt es sich um einen Elementknoten.
- Wenn es ein Elementknoten ist, geben Sie den Namen des Knotens aus.
Navigieren in Knotenbeziehungen
Der folgende Code navigiert den Knotenbaum mithilfe von Knotenbeziehungen:
Beispiel
Selbst ausprobieren »
- VerwendungloadXMLDoc()lade "" in xmlDoc
- Rufen Sie die untergeordneten Knoten des ersten book-Elements ab.
- Setzen Sie die Variable "y" auf den ersten untergeordneten Knoten des ersten book-Elements.
- Prüfen Sie für jeden untergeordneten Knoten (beginnend mit dem ersten untergeordneten Knoten von "y") den Knotentyp. Wenn der Knotentyp "1" ist, handelt es sich um einen Elementknoten.
- Wenn es ein Elementknoten ist, geben Sie den Namen dieses Knotens aus.
- Setzen Sie die Variable "y" auf den nächsten Geschwisterknoten und führen Sie die Schleife erneut aus.
Weitere Erweiterungen