Lista węzłów DOM XML

getElementsByTagName() i metod childNodes właściwości, można uzyskać listę węzłów.

Lista węzłów DOM

Kiedy używa się childNodes lub getElementsByTagName() Gdy używa się niektórych właściwości lub metod, zwracany jest obiekt NodeList.

Obiekt NodeList reprezentuje listę węzłów, deren kolejność jest taka sama jak w XML.

Węzły w liście NodeList można uzyskać poprzez dostęp do nich za pomocą indeksów zaczynających się od 0.

Poniższy obraz przedstawia: books.xml Listę węzłów elementu <title>:

Lista węzłów DOM

Załóżmy, że plik "books.xml" został załadowany do zmiennej xmlDoc.

Ten kod zwraca listę węzłów elementów title z pliku "books.xml":

x = xmlDoc.getElementsByTagName("title");

Po wykonaniu powyższych instrukcji, x staje się obiektem NodeList.

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

Przykład

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

Spróbuj sam

Po wykonaniu powyższych instrukcji, txt = "雅舍谈吃".

wielkość listy węzłów

obiekt NodeList będzie utrzymywał自身的 aktualizacje. Jeśli usunie się lub doda element, lista automatycznie się zaktualizuje.

lista węzłów length liczba atrybutów to liczba węzłów w liście.

Ten kod zwraca liczbę elementów <title> w pliku "books.xml":

x = xmlDoc.getElementsByTagName('title').length;

Po wykonaniu powyższego zdania:x jest równa 5.

może być używana do przechodzenia przez wszystkie elementy w liście.

Długość listy węzłów length przy użyciu pętli po atrybutach, aby przejść 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) + " ";
}

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml został załadowany do xmlDoc Środek
  2. ustawienie zmiennej x, aby zachować listę węzłów wszystkich elementów title
  3. pobieranie wartości węzła tekstowego z elementu <title>

DOM lista atrybutów (mapa węzłów nazwanych)

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

To nazywa się mapą węzłów nazwanych (named node map), która jest podobna do listy węzłów, ale różni się metodami i atrybutami.

Lista atrybutów będzie utrzymywana w najnowszym stanie. Jeśli usunie się lub doda atrybut, lista automatycznie się zaktualizuje.

Ten kod zwraca listę węzłów atrybutów z pierwszego elementu <book> w pliku "books.xml":

x = xmlDoc.getElementsByTagName('book')[0].attributes;

Po wykonaniu powyższego kodu:x.length jest równe liczbie atrybutów, można użyć x.getNamedItem() Zwraca węzeł atrybutu.

Ten kod pobiera wartość atrybutu "category" pierwszej książki oraz liczbę atrybutów:

Przykład

x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;

Spróbuj sam

Przykład wyjaśnienia:

  1. Załóżmy books.xml załadowany do xmlDoc Środek
  2. Ustaw zmienną x, aby zapisać listę wszystkich atrybutów pierwszego elementu <book>
  3. Pobierz wartość atrybutu "category" oraz długość listy atrybutów