Dostęp do węzłów DOM XML
- Poprzednia strona Węzły DOM
- Następna strona Informacje o węzłach DOM
Przy użyciu DOM, możesz uzyskać dostęp do każdego węzła w dokumencie XML.
Dostęp do węzłów
Możesz uzyskać dostęp do węzłów na trzy sposoby:
- Przy użyciu metody getElementsByTagName()
- Przy użyciu pętli (przeszukiwania) drzewa węzłów
- Przy użyciu relacji między węzłami nawigacji po drzewie węzłów
Metoda getElementsByTagName()
getElementsByTagName()
Zwraca wszystkie elementy o określonym nazwie etykiety.
Gramatyka
node.getElementsByTagName("tagname");
Przykład
Poniższy przykład zwraca wszystkie elementy <title> pod węzłem x:
x.getElementsByTagName("title");
Proszę zauważyć, że powyższy przykład zwraca tylko elementy <title> pod węzłem x. Aby zwrócić wszystkie elementy <title> w dokumencie XML, użyj:
xmlDoc.getElementsByTagName("title");
Tutaj,xmlDoc
to sam dokument (węzeł dokumentu).
DOM lista węzłów
getElementsByTagName()
Metoda zwraca listę węzłów (node list). Lista węzłów to tablica węzłów.
x = xmlDoc.getElementsByTagName("title");
Możesz uzyskać dostęp do elementu <title> za pomocą indeksu. Aby uzyskać dostęp do trzeciego <title>, możesz napisać:
y = x[2];
Komentarz:Indeksy zaczynają się od 0.
Długość listy węzłów DOM
length
Atrybuty do zdefiniowania długości listy węzłów (liczby węzłów).
Możesz użyć length
Atrybuty do przechodzenia przez listę węzłów:
Przykład
var x = xmlDoc.getElementsByTagName("title"); for (i = 0; i < x.length; i++) { // Możesz napisać kod przetwarzający każdy węzeł tutaj }
Typ węzła
Węzły dokumentu XML documentElement
Atrybuty to węzeł korzenia.
Atrybuty węzłów to nodeName
nazwa węzła.
Atrybuty węzłów to nodeType
Atrybuty to typy węzłów.
Dowiedziałeś się więcej o atrybutach węzłów w następnym rozdziale tego przewodnika.
Przechodzenie przez węzły
Poniższy kod przechodzi przez podwęzły węzła korzenia (również węzły elementowe):
Przykład
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { // Przetwarzaj tylko węzły elementowe (typ 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Przykład wyjaśnienia:
- Załóżmy, że już masz "books.xml" załadować do
xmlDoc
- Uzyskaj podwęzły elementu korzenia (xmlDoc)
- Sprawdzenie typu węzła każdego podwęzła. Jeśli typ węzła jest "
1
" to węzeł elementowy - Jeśli jest węzłem elementowym, wyświetl nazwę węzła
Nawigacja po relacjach węzłów
Poniższy kod nawiguje po relacjach węzłów w drzewie węzłów, korzystając z tych relacji:
Przykład
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { // Tylko przetwarzaj węzły elementowe (typ 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Przykład wyjaśnienia:
- Załóżmy, że już masz "books.xml" załadować do
xmlDoc
- Uzyskaj podwęzły elementu pierwszego 'book'
- Ustawienie zmiennej "y" na pierwszy podwózł elementu book
- Dla każdego podwęzła (od pierwszego podwęzła "
y
" (zaczyna się): - Sprawdzenie typu węzła każdego podwęzła. Jeśli typ węzła jest "
1
" to jest węzeł elementu - Jeśli jest to węzeł elementu, wyświetl nazwę tego węzła
- Ustawienie "
y
"Zmienna y" ustawiana na następny węzeł równorzędnego poziomu, a pętla uruchamiana ponownie
- Poprzednia strona Węzły DOM
- Następna strona Informacje o węzłach DOM