XML-DOM -Knotenliste
Eine Liste von Knoten wird von der Methode getElementsByTagName() und der Eigenschaft childNodes zurückgegeben.
Probieren Sie es selbst aus - Beispiele
Die folgenden Beispiele verwenden die XML-Datei books.xml .
In diesem Beispiel wird die getElementsByTagName()-Methode verwendet, um den Text aus dem ersten <title>-Element in „books.xml“ abzurufen.
Dieses Beispiel verwendet die Knotenliste und die length-Eigenschaft, um alle <title>-Elemente in „books.xml“ zu durchlaufen.
Dieses Beispiel verwendet eine Attributliste, um das Attribut aus dem ersten <book>-Element in „books.xml“ abzurufen.
DOM-Knotenliste
Bei Verwendung von Eigenschaften oder Methoden wie childNodes oder getElementsByTagName() wird ein Knotenlistenobjekt zurückgegeben.
Ein Knotenlistenobjekt stellt eine Liste von Knoten in derselben Reihenfolge wie im XML dar.
Auf Knoten in der Knotenliste wird mit Indexnummern zugegriffen, die bei 0 beginnen.
Das folgende Bild stellt eine Knotenliste der <title>-Elemente in „ books.xml “ dar:
Angenommen, "books.xml" wird in die Variable xmlDoc geladen.
Dieses Codefragment gibt eine Knotenliste von Titelelementen in „books.xml“ zurück:
x = xmlDoc.getElementsByTagName("title");
Nach der Ausführung der obigen Anweisung ist x ein Knotenlistenobjekt.
Das folgende Codefragment gibt den Text aus dem ersten <title>-Element in der Knotenliste (x) zurück:
Beispiel
var txt = x[0].childNodes[0].nodeValue;
Nach der Ausführung der obigen Anweisung ist txt = "Alltagsitalienisch".
Länge der Knotenliste
Ein Knotenlistenobjekt hält sich selbst auf dem neuesten Stand. Wird ein Element gelöscht oder hinzugefügt, wird die Liste automatisch aktualisiert.
Die Längeneigenschaft einer Knotenliste ist die Anzahl der Knoten in der Liste.
Dieses Codefragment gibt die Anzahl der <title>-Elemente in „books.xml“ zurück:
x = xmlDoc.getElementsByTagName('title').length;
Nach der Ausführung der obigen Anweisung ist der Wert von x 4.
Die Länge der Knotenliste kann verwendet werden, um alle Elemente der Liste zu durchlaufen.
Dieses Codefragment verwendet die length-Eigenschaft, um die Liste der <title>-Elemente zu durchlaufen:
Beispiel
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
Ausgabe:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Beispiel erklärt:
- Angenommen, " books.xml " wird in xmlDoc geladen
- Legen Sie die Variable x so fest, dass sie eine Knotenliste aller Titelelemente enthält
- Sammeln Sie die Textknotenwerte aus <title>-Elementen
DOM-Attributliste (Named Node Map)
Die Eigenschaft attributes eines Elementknotens gibt eine Liste von Attributknoten zurück.
Dies wird als benannte Knotenzuordnung bezeichnet und ähnelt einer Knotenliste, abgesehen von einigen Unterschieden in Methoden und Eigenschaften.
Eine Attributliste hält sich selbst aktuell. Wenn ein Attribut gelöscht oder hinzugefügt wird, wird die Liste automatisch aktualisiert.
Dieses Codefragment gibt eine Liste von Attributknoten aus dem ersten <book>-Element in „books.xml“ zurück:
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Nach der Ausführung des obigen Codes ist x.length = die Anzahl der Attribute und x.getNamedItem() kann verwendet werden, um einen Attributknoten zurückzugeben.
Dieses Codefragment erhält den Wert des Attributs "Kategorie" und die Anzahl der Attribute eines Buchs:
Beispiel
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Ausgabe:
cooking
1
Beispiel erklärt:
- Angenommen, " books.xml " wird in xmlDoc geladen
- Setzen Sie die x-Variable so, dass sie eine Liste aller Attribute des ersten <book>-Elements enthält
- Rufen Sie den Wert des Attributs "Kategorie" und die Länge der Attributliste ab