Mit dem DOM können Sie jeden Knoten in einem XML-Dokument zugreifen.
Probieren Sie es selbst - Beispiele
Die folgenden Beispiele verwenden , um die XML - Datei books.xml .
Greifen Sie auf einen Knoten seine Indexnummer in einer Knotenliste mit
Verwenden Sie die getElementsByTagName() Methode , um die dritte zu bekommen <title> Element in "books.xml"
Schleife durch Knoten die Länge Eigenschaft verwendet
Verwenden Sie die Eigenschaft length in einer Schleife durch alle <title> Elemente in "books.xml"
Siehe den Knotentyp eines Elements
Verwenden Sie die Eigenschaft nodeType zu Knotentyp des Stammelements in erhalten "books.xml" .
Schleife durch Elementknoten
Verwenden Sie die Eigenschaft nodeType nur Prozesselementknoten in "books.xml" .
Schleife durch Elementknoten Knoten Beziehungen mit
Verwenden Sie die Eigenschaft nodeType und die nextSibling Eigenschaft Elementknoten in verarbeiten "books.xml" .
Der Zugriff auf Knoten
Sie können einen Knoten auf drei Arten zugreifen:
1. Durch die Verwendung von getElementsByTagName() Methode
2. durch von looping (traversing) den Knoten Baum.
3. Um den Knotenbaum, mit den Knotenbeziehungen durch Navigation.
Die getElementsByTagName() Methode
getElementsByTagName () liefert alle Elemente mit einem bestimmten Tag - Namen.
Syntax
node.getElementsByTagName("tagname");
Beispiel
Das folgende Beispiel gibt alle <title> Elemente unter dem x - Element:
x.getElementsByTagName("title");
Beachten Sie, dass das obige Beispiel nur Renditen <title> Elemente unter dem x - Knoten. Um alle <title> Elemente im XML - Dokument verwenden:
xmlDoc.getElementsByTagName("title");
wo xmlDoc ist das Dokument selbst (document node) - (document node) .
DOM Node List
Die getElementsByTagName() Methode gibt eine Knotenliste. Eine Knotenliste ist ein Array von Knoten.
x = xmlDoc.getElementsByTagName("title");
Der <title> Elemente in x durch Indexnummer zugegriffen werden. Um den dritten Zugang <title> können Sie schreiben ::
y = x[2];
Note: Der Index beginnt bei 0.
Sie werden mehr über Knotenlisten in einem späteren Kapitel dieses Tutorials lernen.
DOM Node List Länge
Die Länge Eigenschaft definiert die Länge einer Knotenliste (the number of nodes) .
Sie können Schleife durch eine Knotenliste, indem die Länge Eigenschaft mit:
Beispiel
var
x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
//
do something for each node
}
Versuch es selber " Knotentypen
Die documentElement Eigenschaft des XML - Dokuments ist der Wurzelknoten.
Die nodeName Eigenschaft eines Knotens ist der Name des Knotens.
Die nodeType Eigenschaft eines Knotens ist die Art des Knotens.
Sie werden mehr über die Eigenschaften des Knotens im nächsten Kapitel dieses Tutorials lernen.
Verfahrgeschwindigkeit Knoten
Der folgende Code Schleifen durch den untergeordneten Knoten, die auch Element-Knoten sind, des Wurzelknotens:
Beispiel
txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i <x.length; i++)
{
// Process only element nodes (type 1)
if (x[i].nodeType == 1) {
txt += x[i].nodeName + "<br>";
}
}
Versuch es selber " Erklärt Beispiel:
- Angenommen , Sie haben "geladen books.xml " in xmlDoc
- Holen Sie sich die Kinderknoten des Wurzelelements (xmlDoc)
- Für jedes Kind-Knoten, überprüfen Sie den Knotentyp. Wenn der Knotentyp ist "1" , ist es ein Element , Knoten
- Ausgabe den Namen des Knotens, wenn es ein Elementknoten ist
Navigating Knoten Beziehungen
Der folgende Code navigiert den Knotenbaum die Knotenbeziehungen mit:
Beispiel
x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++)
{
// Process only element nodes (type 1)
if (y.nodeType == 1) {
txt += y.nodeName + "<br>";
}
y = y.nextSibling;
}
Versuch es selber " Erklärt Beispiel:
- Angenommen , Sie haben "geladen books.xml " in xmlDoc
- Holen Sie sich die Kinderknoten des ersten Buches Element
- Stellen Sie die "y" Variable das erste Kind - Knoten des ersten Buches Element zu sein
- Für jeden Kindknoten (starting with the first child node "y") :
- Überprüfen Sie den Knotentyp. Wenn der Knotentyp ist "1" , ist es ein Element , Knoten
- Ausgabe den Namen des Knotens, wenn es ein Elementknoten ist
- Stellen Sie die "y" Variable der nächsten Geschwisterknoten zu sein und laufen wieder durch die Schleife