Lokalizacja węzłów XML DOM
- Poprzednia strona Przeglądarka DOM
- Następna strona Pobieranie węzłów DOM
można zlokalizować węzeł za pomocą relacji między węzłami.
Przykład
Poniższy przykład używa pliku XML books.xml.
funkcja loadXMLDoc()zlokalizowany w zewnętrznym JavaScript, używany do ładowania plików XML.
- Uzyskaj rodzica węzła
- W tym przykładzie używamy atrybutu parentNode do uzyskania rodzica węzła.
- Uzyskaj pierwsze dziecko węzła
- W tym przykładzie używamy metody firstChild() i własności customowej funkcji do uzyskania pierwszego dziecka węzła.
Nawigacja po węzłach DOM
Dostęp do węzłów w drzewie węzłów poprzez relacje między nimi, co jest często nazywane nawigowaniem węzłami ("navigating nodes").
W XML DOM relacje między węzłami są zdefiniowane jako atrybuty węzłów:
- parentNode
- childNodes
- firstChild
- lastChild
- nextSibling
- previousSibling
Poniższe obrazy pokazują books.xml Część drzewa węzłów, która pokazuje relacje między węzłami:

DOM - rodzic
Każdy węzeł ma tylko jednego rodzica. Poniższy kod lokalizuje rodzica <book>:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; document.write(x.parentNode.nodeName);
Przykład wyjaśnienia:
- Przy użyciu loadXMLDoc() "books.xml" załadowany do xmlDoc
- Pobierz pierwszy element <book>
- Wypisz nazwę węzła rodzica "x"
Unikaj pustych węzłów tekstowych
Firefox oraz niektóre inne przeglądarki traktują puste białe przestrzenie i znaki nowej linii jako węzły tekstowe, podczas gdy IE nie robi tego.
To powoduje problem przy użyciu następujących właściwości: firstChild, lastChild, nextSibling, previousSibling.
Aby uniknąć lokalizacji pustych węzłów tekstowych (spacji i znaków nowej linii między węzłami elementowymi), używamy funkcji do sprawdzania typu węzła:
function get_nextSibling(n) { y=n.nextSibling; while (y.nodeType!=1) { y=y.nextSibling; } return y; }
Dzięki powyższej funkcji możemy używać get_nextSibling(node) zamiast właściwości node.nextSibling.
Wyjaśnienie kodu:
Typ węzła elementu to 1. Jeśli węzeł na tym samym poziomie nie jest węzłem elementu, przejdź do następnego węzła, aż znajdziesz węzeł elementu. Dzięki temu w IE i Firefox uzyskasz ten sam wynik.
Pobierz pierwszy element
Poniższy kod pokazuje pierwszy element węzła <book>:
<html> <head> <script type="text/javascript" src="loadxmldoc.js"> </script> <script type="text/javascript"> //sprawdź, czy pierwszy węzeł jest węzłem elementu function get_firstChild(n) { y=n.firstChild; while (y.nodeType!=1) { y=y.nextSibling; } return y; } </script> </head> <body> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]); document.write(x.nodeName); </script> </body> </html>
Wyjście:
title
Przykład wyjaśnienia:
- Przy użyciu loadXMLDoc() "books.xml"Wczytaj do xmlDoc"
- Użyj funkcji get_firstChild na pierwszym <book>, aby uzyskać pierwszy potomek węzła elementu
- Wyświetlenie nazwy węzła pierwszego potomka (węzła elementu)
Przykład
Poniższy przykład używa podobnych funkcji:
- Poprzednia strona Przeglądarka DOM
- Następna strona Pobieranie węzłów DOM