Lista węzłów XML DOM
Lista węzłów jest zwracana przez metodę getElementsByTagName() i właściwość childNodes.
Spróbuj sam - przykłady
Poniższe przykłady wykorzystują plik XML books.xml .
W tym przykładzie użyto metody getElementsByTagName() w celu pobrania tekstu z pierwszego elementu <title> w „books.xml”.
W tym przykładzie użyto listy węzłów i właściwości length do wykonania pętli przez wszystkie elementy <title> w „books.xml”
W tym przykładzie użyto listy atrybutów do pobrania atrybutu z pierwszego elementu <book> w "books.xml".
Lista węzłów DOM
Podczas korzystania z właściwości lub metod, takich jak childNodes lub getElementsByTagName(), zwracany jest obiekt listy węzłów.
Obiekt listy węzłów reprezentuje listę węzłów w tej samej kolejności, co w XML.
Węzły na liście węzłów są dostępne z numerami indeksu zaczynającymi się od 0.
Poniższy obraz przedstawia listę węzłów elementów <title> w pliku „ books.xml ”:
Załóżmy, że "books.xml" jest załadowany do zmiennej xmlDoc.
Ten fragment kodu zwraca listę węzłów elementów tytułu w "books.xml":
x = xmlDoc.getElementsByTagName("title");
Po wykonaniu powyższej instrukcji x jest obiektem listy węzłów.
Poniższy fragment kodu zwraca tekst z pierwszego elementu <title> na liście węzłów (x):
Przykład
var txt = x[0].childNodes[0].nodeValue;
Po wykonaniu powyższego oświadczenia txt = „Codziennie włoski”.
Długość listy węzłów
Obiekt listy węzłów sam się aktualizuje. Jeśli element zostanie usunięty lub dodany, lista jest automatycznie aktualizowana.
Właściwość length listy węzłów to liczba węzłów na liście.
Ten fragment kodu zwraca liczbę elementów <title> w "books.xml":
x = xmlDoc.getElementsByTagName('title').length;
Po wykonaniu powyższego zestawienia wartość x wyniesie 4.
Długość listy węzłów może służyć do przeglądania wszystkich elementów na liście.
Ten fragment kodu używa właściwości length do przechodzenia przez listę elementów <title>:
Przykład
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
Wyjście:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Przykład wyjaśniony:
- Załóżmy, że plik " books.xml " jest załadowany do xmlDoc
- Ustaw zmienną x do przechowywania listy węzłów wszystkich elementów tytułu
- Zbierz wartości węzłów tekstowych z elementów <title>
Lista atrybutów DOM (mapa nazwanych węzłów)
Właściwość atrybutów węzła elementu zwraca listę węzłów atrybutów.
Nazywa się to nazwaną mapą węzłów i jest podobne do listy węzłów, z wyjątkiem pewnych różnic w metodach i właściwościach.
Lista atrybutów jest aktualna. Jeśli atrybut zostanie usunięty lub dodany, lista jest automatycznie aktualizowana.
Ten fragment kodu zwraca listę węzłów atrybutów z pierwszego elementu <book> w "books.xml":
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Po wykonaniu powyższego kodu x.length = jest liczbą atrybutów, a x.getNamedItem() może zostać użyte do zwrócenia węzła atrybutu.
Ten fragment kodu pobiera wartość atrybutu „kategoria” oraz liczbę atrybutów książki:
Przykład
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Wyjście:
cooking
1
Przykład wyjaśniony:
- Załóżmy, że plik " books.xml " jest załadowany do xmlDoc
- Ustaw zmienną x do przechowywania listy wszystkich atrybutów pierwszego elementu <book>
- Uzyskaj wartość atrybutu „kategoria” i długość listy atrybutów