Pobieranie wartości węzłów XML DOM

Atrybut nodeValue jest używany do pobierania wartości tekstowej węzła.

Metoda getAttribute() zwraca wartość atrybutu.

Przykład

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

Funkcja loadXMLDoc()znajduje się w zewnętrznym JavaScriptie i jest używana do ładowania plików XML.

Pobieranie wartości elementu
W tym przykładzie użyto getElementsByTagname() do pobrania pierwszego elementu <title> z pliku "books.xml".
Pobieranie wartości atrybutu
W tym przykładzie użyto metody getAttribute() do pobrania wartości atrybutu "lang" pierwszego elementu <title> z pliku "books.xml".

Pobieranie wartości elementu

W DOM, każdy składnik jest węzłem. Węzły elementowe nie mają wartości tekstowej.

Tekst węzłów elementowych jest przechowywany w podwęzłach. Ten węzeł nazywa się węzłem tekstowym.

Metoda pobierania wartości elementu to pobranie wartości tego podwęzła (węzła tekstowego).

Pobieranie wartości elementu

Metoda getElementsByTagName() zwraca listę węzłów zawierających wszystkie elementy o określonym nazwie znacznika, gdzie kolejność elementów odpowiada ich kolejności występowania w dokumencie źródłowym.

Poniższy kod używa: loadXMLDoc() Ustaw "books.xmlWczytuje się xmlDoc i wyszukuje pierwszego elementu <title>:

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

Atrybut childNodes zwraca listę podwęzłów.<title> Element ma tylko jeden podwęzeł, który jest węzłem tekstowym.

Poniższy kod wyszukuje węzły tekstowe elementu <title>:

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];

Atrybut nodeValue zwraca wartość tekstową węzła tekstowego:

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
txt = y.nodeValue;

Wynik: txt = "Harry Potter"

TIY

Przeszukaj wszystkie elementy <title>:TIY

Pobieranie wartości atrybutu

W DOM, atrybuty są również węzłami. W przeciwieństwie do węzłów elementowych, węzły atrybutów mają wartość tekstową.

Metoda pobierania wartości atrybutu to pobranie jego wartości tekstowej.

Zadanie to można wykonać za pomocą metody getAttribute() lub atrybutu nodeValue węzła.

Pobieranie wartości atrybutu - getAttribute()

Metoda getAttribute() zwraca wartość atrybutu.

Poniższy kod wyszukuje wartość tekstu atrybutu "lang" pierwszego elementu <title>:

xmlDoc=loadXMLDoc("books.xml");
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

Wynik: txt = "en"

Przykład wyjaśnienia:

  • Przy użyciu loadXMLDoc() Ustaw "books.xmlWczytaj do xmlDoc
  • Ustaw zmienną txt na wartość atrybutu "lang" pierwszego elementu title

TIY

Przejdź przez wszystkie elementy <book> i uzyskaj ich atrybuty "category":TIY

Uzyskaj wartość atrybutu - getAttributeNode()

Metoda getAttributeNode() zwraca węzeł atrybutu.

Poniższy kod wyszukuje tekst wartości atrybutu "lang" pierwszego elementu <title>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].getAttributeNode("lang");
txt=x.nodeValue;

Wynik: txt = "en"

Przykład wyjaśnienia:

  • Przy użyciu loadXMLDoc() Ustaw "books.xmlWczytaj do xmlDoc
  • Uzyskaj atrybut węzła "lang" pierwszego elementu <title>
  • Ustaw zmienną txt na wartość atrybutu

TIY

Przejdź przez wszystkie elementy <book> i uzyskaj ich atrybuty "category":TIY