Z DOM, można uzyskać dostęp do każdego węzła w dokumencie XML.
Spróbuj sam - przykłady
Poniższe przykłady użyć pliku XML Books.xml .
Dostęp do węzła przy użyciu swojego numeru indeksu na liście węzłów
Użyj getElementsByTagName() metodę, aby uzyskać trzeci <title> element "books.xml"
Pętli węzłów wykorzystujących właściwości length
Użyj właściwości długości pętli wszystkich <title> elementy "books.xml"
Zobacz typ węzła elementu
Użyj właściwości nodeType dostać typ węzła głównego elementu w "books.xml" .
Pętli węzłów elementu
Użyj właściwości nodeType elementowi węzłów przetwarzać tylko w "books.xml" .
Pętla przez węzły elementów z wykorzystaniem relacji węzła
Użyj właściwości nodeType i właściwość nextSibling przetwarzać węzły element "books.xml" .
Dostęp do węzłów
Można uzyskać dostęp do węzła na trzy sposoby:
1. Korzystając z getElementsByTagName() metody
2. przelotowego (traversing) drzewa węzłów.
3. Do poruszania się po drzewie węzłów, korzystając z relacji węzłów.
getElementsByTagName() Metoda
getElementsByTagName () zwraca wszystkie elementy o określonej nazwie znacznika.
Składnia
node.getElementsByTagName("tagname");
Przykład
Poniższy przykład zwraca wszystkie <title> elementy w elemencie x:
x.getElementsByTagName("title");
Należy zauważyć, że powyższy przykład zwraca tylko <title> elementów w węźle x. Aby przywrócić wszystkie <title> elementy wykorzystaniem dokumentu XML:
xmlDoc.getElementsByTagName("title");
gdzie xmldoc jest dokumentem sama (document node) .
Lista DOM Node
getElementsByTagName() Metoda zwraca listę węzłów. Lista węzłów jest tablicą węzłów.
x = xmlDoc.getElementsByTagName("title");
<title> elementy x można uzyskać poprzez numer indeksu. Aby uzyskać dostęp do trzeciego <title> można napisać ::
y = x[2];
Note: Indeks zaczyna się od 0.
Dowiesz się więcej o listach węzła w późniejszym rozdziale niniejszego poradnika.
Lista DOM Node Długość
Właściwość długość określa długość listy węzłów (the number of nodes) .
Można pętli listy węzłów za pomocą właściwości length:
Przykład
var
x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
//
do something for each node
}
Spróbuj sam " typy węzłów
documentElement własność dokumentu XML jest węzeł główny.
nodeName własność węzła to nazwa węzła.
nodeType własność węzła jest typ węzła.
Dowiesz się więcej o właściwościach węzła w następnym rozdziale tego podręcznika.
Węzły postępowe
Następujący kod w pętli węzłów podrzędnych, które są również węzły elementu węzła głównego:
Przykład
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>";
}
}
Spróbuj sam " Przykład wyjaśnił:
- Załóżmy, że masz załadowany " Books.xml " do xmldoc
- Uzyskaj węzły podrzędne elementu głównego (xmlDoc)
- Dla każdego węzła potomnego, sprawdź typ węzła. Jeżeli węzeł typu "1" jest wierzchołkiem elementu
- Wyjście nazwę węzła, jeśli węzeł jest elementem
Nawigacja Node Relacje
Poniższy kod przechodzi drzewo węzła wykorzystując relacje węzłów:
Przykład
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;
}
Spróbuj sam " Przykład wyjaśnił:
- Załóżmy, że masz załadowany " Books.xml " do xmldoc
- Uzyskaj węzły potomne pierwszego elementu książki
- Ustaw "y" zmienną być pierwszy węzeł dziecko pierwszego elementu książki
- Dla każdego węzła potomnego (starting with the first child node "y") :
- Sprawdź typ węzła. Jeżeli węzeł typu "1" jest wierzchołkiem elementu
- Wyjście nazwę węzła, jeśli węzeł jest elementem
- Ustaw "y" zmienną być następny węzeł równorzędny i uruchom ponownie przez pętlę