Pobieranie wartości węzłów XML DOM
- Poprzednia strona Lokalizacja węzła DOM
- Następna strona Zmiana węzła 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"
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
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
Przejdź przez wszystkie elementy <book> i uzyskaj ich atrybuty "category":TIY
- Poprzednia strona Lokalizacja węzła DOM
- Następna strona Zmiana węzła DOM