Zastępowanie węzłów XML DOM

Metoda replaceChild() zastępuje określony węzeł.

Atrybut nodeValue zastępuje tekst w węzłach tekstowych.

Przykład

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

Funkcja loadXMLDoc()Jest umieszczona w zewnętrznym JavaScriptie i służy do ładowania pliku XML.

Zastępowanie węzła elementu
W tym przykładzie użyto replaceChild() do zastępowania pierwszego węzła <book>.
Zastępowanie danych w węzłach tekstowych
W tym przykładzie użyto atrybutu nodeValue do zastępowania danych w węzłach tekstowych.

Zastępowanie węzła elementu

Metoda replaceChild() służy do zastępowania węzłów.

Poniższy fragment kodu zastępuje pierwszy element <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement;
//Utworzenie węzła book, węzła title oraz węzła tekstowego.
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Hello World");
//Dodanie węzła tekstowego do węzła title.
newTitle.appendChild(newText);
//Dodanie węzła title do węzła book.
newNode.appendChild(newTitle);
y=xmlDoc.getElementsByTagName("book")[0];
//Zastępowanie pierwszego węzła book nowym węzłem.
x.replaceChild(newNode, y);

Przykład wyjaśnienia:

  • Poprzez użycie loadXMLDoc() Zmień "books.xml" załadować do xmlDoc
  • Utworzenie nowego węzła elementu <book>.
  • Utworzenie nowego węzła elementu <title>.
  • Utworzenie nowego węzła tekstowego z tekstem "Hello World".
  • Dodanie tego nowego węzła tekstowego do nowego węzła <title>.
  • Dodanie tego nowego węzła <title> do nowego węzła <book>.
  • Zastępowanie pierwszego węzła <book> nowym węzłem <book>.

TIY

Zastępowanie danych w węzłach tekstowych

Metoda replaceData() służy do zastępowania danych w węzłach tekstowych.

Metoda replaceData ma trzy parametry:

  • offset - gdzie zacząć zastępowanie znaków. Wartość offset zaczyna się od 0
  • length - liczba znaków do zastąpienia
  • string - ciąg znaków do wstawienia
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,8,"hello");

Przykład wyjaśnienia:

  • Poprzez użycie loadXMLDoc() Zmień "books.xml" załadować do xmlDoc
  • Pobierz tekst węzła pierwszego elementu <title>
  • Użyj metody replaceData, aby zastąpić pierwsze 8 znaków tekstu węzła na "hello"

TIY

Użycie atrybutu nodeValue

Zastąpienie danych w węźle tekstowym za pomocą atrybutu nodeValue będzie łatwiejsze.

Poniższy fragment kodu zastąpi tekst węzła pierwszego elementu <title> tekstem "Easy Italian"

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

Przykład wyjaśnienia:

  • Poprzez użycie loadXMLDoc() Zmień "books.xml" załadować do xmlDoc
  • Pobierz tekst węzła pierwszego elementu <title>
  • Użyj atrybutu nodeValue, aby zmienić tekst tego węzła tekstowego

TIY

Możesz to zrobić w Zmiana węzła W tej sekcji przeczytaj więcej o zmianie wartości węzła.