XML DOM Node List

Lista węzłów jest zwracana przez metodę getElementsByTagName() i atrybut childNodes.

Przykład

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

Funkcja loadXMLDoc()Znajduje się poza JavaScriptem, używany do ładowania plików XML.

Uzyskiwanie tekstu z pierwszego elementu <title>
W tym przykładzie używana jest metoda getElementsByTagName() do uzyskania tekstu z pierwszego elementu <title> z pliku "books.xml".
Iterowanie przez węzły za pomocą atrybutu length
W tym przykładzie używana jest lista węzłów i atrybutu length do iteracji przez wszystkie elementy <title> w pliku "books.xml".
Uzyskiwanie atrybutów elementu
W tym przykładzie używana jest lista atrybutów do uzyskania atrybutów z pierwszego elementu <title> z pliku "books.xml".

DOM Node List

Gdy używasz takich atrybutów lub metod jak childNodes lub getElementsByTagName(), zwracany jest obiekt NodeList.

Obiekt NodeList reprezentuje listę węzłów, w tej samej kolejności co w XML.

Używaj indeksów zaczynających się od 0 do dostępu do węzłów listy węzłów.

Poniższe obrazy przedstawiają "}}books.xml"Listę węzłów elementów <title>:

lista węzłów DOM

Poniższy fragment kodu używa loadXMLDoc() Wczytaj "books.xml" do xmlDoc i zwróć "books.xml"Listę węzłów jednego elementu title:

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

Po wykonaniu powyższego polecenia, x staje się obiektem NodeList.

Poniższy fragment kodu zwraca tekst z pierwszego elementu <title> z listy węzłów x:

txt=x[0].childNodes[0].nodeValue;

Po wykonaniu powyższego polecenia, txt = "Everyday Italian".

TIY

Długość Listy Węzłów

Obiekt NodeList będzie utrzymywał swoją aktualizację. Jeśli usunie się lub doda element, lista będzie automatycznie aktualizowana.

Atrybut length listy węzłów jest liczbą węzłów w liście.

Poniższy fragment kodu używa loadXMLDoc() Ustaw "books.xml"Wczytaj xmlDoc, a zwróci "liczbę elementów <title> w "books.xml":

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

Po wykonaniu powyższego polecenia, x = 4.

Długość listy węzłów może być używana do przechodzenia przez wszystkie elementy listy.

Poniższy fragment kodu używa atrybutu length do przechodzenia przez listę elementów <title>:

xmlDoc=loadXMLDoc("books.xml");
//Zmienna x będzie przechowywać listę węzłów
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

Wynik:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

Przykład wyjaśnienia:

  • Przy użyciu loadXMLDoc() Ustaw "books.xml"Wczytaj xmlDoc
  • Ustawienie zmiennej x dla listy węzłów zawierających wszystkie elementy <title>
  • Wyprowadzenie wartości z węzłów tekstowych wszystkich elementów <title>

TIY

DOM Attribute List (Named Node Map)

Atrybuty węzła elementowego zwracają listę węzłów atrybutów.

To nazywa się Named Node Map, oprócz pewnych różnic w metodach i atrybutach, jest podobne do listy węzłów.

Lista atrybutów będzie utrzymywać swoją aktualizację. Jeśli usunie się lub doda atrybut, lista ta będzie automatycznie aktualizowana.

Poniższy fragment kodu używa loadXMLDoc() Wprowadź "books.xml" do xmlDoc, a następnie z "books.xmlPierwszy element <book> w "

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

Po wykonaniu powyższego kodu, x.length równa się liczbie atrybutów, które można uzyskać za pomocą x.getNamedItem().

Poniższy fragment kodu pokazuje wartość atrybutu "category" jednego elementu "book" oraz liczbę jego atrybutów:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

Wynik:

children
1

Przykład wyjaśnienia:

  • Przy użyciu loadXMLDoc() Ustaw "books.xml"
  • Ustaw zmienną x jako listę wszystkich atrybutów pierwszego elementu <book>
  • Wypisz wartość atrybutu "category"
  • Wypisz długość listy atrybutów

TIY