Dostęp do węzłów XML DOM

Przez DOM, możesz uzyskać dostęp do każdego węzła w dokumencie XML.

Przykład

Poniższy przykład używa pliku XML books.xml.

funkcja loadXMLDoc()zlokalizowany poza JavaScript, używany do ładowania plików XML.

Dostęp do węzłów za pomocą indeksu w liście węzłów
W tym przykładzie używamy metody getElementsByTagname() do uzyskania trzeciego <title> elementu w "books.xml".
Przechodzenie przez węzły za pomocą atrybutu length
W tym przykładzie używamy atrybutu length do przechodzenia przez wszystkie <title> elementy w "books.xml".
Sprawdzenie typu węzła elementu
W tym przykładzie używamy atrybutu nodeType do uzyskania typu węzła korzenia w "books.xml".
Przetwarzanie węzłów elementów
W tym przykładzie używamy atrybutu nodeType do przetwarzania węzłów elementów w "books.xml".
Przetwarzanie węzłów elementów za pomocą relacji węzłów
W tym przykładzie używamy atrybutu nodeType i atrybutu nextSibling do przetwarzania węzłów elementów w "books.xml".

Dostęp do węzłów

Możesz uzyskać dostęp do węzłów na trzy sposoby:

  1. przy użyciu metody getElementsByTagName()
  2. przez przechodzenie przez drzewo węzłów
  3. nawigacja po drzewie węzłów za pomocą relacji węzłów

Metoda getElementsByTagName()

getElementsByTagName() zwraca wszystkie elementy o podanym nazwie etykiety.

język

node.getElementsByTagName("tagname");

Przykład

Poniższy przykład zwraca wszystkie elementy <title> wewnątrz x:

x.getElementsByTagName("title");

Proszę zauważyć, że powyższy przykład zwraca tylko elementy <title> wewnątrz x. Aby zwrócić wszystkie elementy <title> w dokumencie XML, użyj:

xmlDoc.getElementsByTagName("title");

W tym przypadku xmlDoc to sam dokument (węzeł dokumentu).

Lista węzłów DOM

metody getElementsByTagName() do zwrócenia listy węzłów (listy węzłów). Lista węzłów to tablica węzłów.

Poniższy kod używa loadXMLDoc() Ustaw "books.xml"Wczytaj xmlDoc do zmiennej, a następnie zapisz listę <title> w zmiennej x:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Możesz uzyskać dostęp do elementu <title> w x za pomocą indeksu. Aby uzyskać dostęp do trzeciego <title>, możesz napisać:

y=x[2];

TIY

Komentarz:Indeksy zaczynają się od 0.

W późniejszych rozdziałach tego kursu nauczysz się więcej o liście węzłów.

Długość listy węzłów DOM

Atrybut length definiuje długość listy węzłów (liczbę węzłów).

Możesz przejść przez listę węzłów za pomocą atrybutu length:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");
for (i=0;i<x.length;i++)
  { 
  document.write(x[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

Przykład wyjaśnienia:

  1. Użyj loadXMLDoc() Ustaw "books.xml"Wczytaj xmlDoc
  2. Uzyskaj wszystkie elementy <title>
  3. Wypisz wartość węzła tekstowego każdego elementu <title>

TIY

Typ węzła

Dokument XML documentElement Atrybut to węzeł korzenia.

Atrybut węzła to nodeName nazwa węzła.

Atrybut węzła to nodeType Atrybuty to typ węzła.

W następnym rozdziale tego kursu nauczysz się więcej o atrybutach węzłów.

TIY

Przechodź przez węzły

Poniższy kod przechodzi przez podwęzły elementu korzenia, które są również węzłami elementowymi:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
  jeśli (x[i].nodeType==1)
  {//Przetwarzaj tylko węzły elementu (typ 1) 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

Przykład wyjaśnienia:

  1. Przez użycie loadXMLDoc() Ustaw "books.xml"Wczytaj do xmlDoc"
  2. Uzyskaj podwęzły elementu korzenia
  3. Sprawdź typ węzła każdego podwęzła. Jeśli typ węzła to "1", to jest węzeł elementowy
  4. Jeśli jest to węzeł elementu, wyświetl nazwę tego węzła

TIY

Nawigacja za pomocą relacji węzłów

Poniższy kod nawiguje po drzewie węzłów za pomocą relacji węzłów:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
  {//Przetwarzaj tylko węzły elementu (typ 1)
  document.write(y.nodeName + "<br />");
  }
y=y.nextSibling;
}
  1. Przez użycie loadXMLDoc() Ustaw "books.xml"Wczytaj do xmlDoc"
  2. Uzyskaj pierwszy podwęzeł elementu "book"
  3. Ustaw zmienną "y" na pierwszy podwęzeł pierwszego elementu "book"
  4. Sprawdź typ węzła każdego podwęzła, jeśli typ węzła to "1", to jest to węzeł elementu
  5. Jeśli jest to węzeł elementu, wyświetl nazwę tego węzła
  6. Ustaw zmienną "y" na następny węzeł bratni i uruchom pętlę ponownie

TIY