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

Właściwość nodeValue służy do zmiany wartości węzła.

Metoda setAttribute służy do zmiany wartości atrybutu.

Przykład

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

Funkcja loadXMLDoc()Znajduje się w zewnętrznym JavaScriptie, służy do ładowania plików XML.

Zmiana węzła tekstowego elementu
W tym przykładzie używamy właściwości nodeValue do zmiany węzła tekstowego pierwszego elementu <title> w pliku "books.xml".
Zmiana wartości atrybutu za pomocą setAttribute
W tym przykładzie używamy metody setAttribute do zmiany wartości atrybutu "category" pierwszego elementu <book>.
Zmiana wartości atrybutu za pomocą nodeValue
W tym przykładzie używamy właściwości nodeValue do zmiany wartości atrybutu "category" pierwszego elementu <book>.

Zmiana wartości elementu

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

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

Metoda zmiany tekstu elementu to zmiana wartości tego podwęzła (węzła tekstowego).

Zmiana wartości węzła tekstowego

Właściwość nodeValue może być używana do zmiany wartości węzła tekstowego.

Poniższy fragment kodu zmienia wartość węzła tekstowego pierwszego elementu <title>:

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

Przykład wyjaśnienia:

  • Przy użyciu loadXMLDoc() Zmień wartość atrybutu "books.xmlWgraj do xmlDoc
  • Uzyskaj węzeł tekstowy pierwszego elementu <title>
  • Zmień wartość węzła tekstowego tego tekstu na "Hello World"

TIY

Przejdź przez wszystkie węzły tekstowe elementów <title> i zmień je:TIY

Zmiana 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 zmiany wartości atrybutu to zmiana jej wartości tekstowej.

Można to zrobić za pomocą metody setAttribute() lub właściwości nodeValue w węźle atrybutu.

Przez użycie setAttribute() do zmiany atrybutu

Metoda setAttribute() ustawia wartość istniejącego atrybutu lub tworzy nowy atrybut.

Poniższy kod zmienia atrybut category elementu <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("category","child");

Przykład wyjaśnienia:

  • Przy użyciu loadXMLDoc() Zmień wartość atrybutu "books.xmlWgraj do xmlDoc
  • Pobierz pierwszy element <book>
  • Zmień wartość atrybutu "category" na "child"

TIY

Przejdź przez wszystkie <title> i dodaj nowy atrybut:TIY

Uwaga:Jeśli atrybut węzła nie istnieje, utwórz nowy atrybut (z określonym nazwą i wartością).

Zmiana atrybutu przy użyciu nodeValue

Atrybut nodeValue można użyć do zmiany wartości atrybutu węzła:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0]
y=x.getAttributeNode("category");
y.nodeValue="child";

Przykład wyjaśnienia:

  • Przy użyciu loadXMLDoc() Zmień wartość atrybutu "books.xmlWgraj do xmlDoc
  • Pobierz atrybut "category" pierwszego elementu <book>
  • Zmień wartość atrybutu węzła na "child"

TIY