Zastępowanie węzłów XML DOM
- Poprzednia strona Usuwanie węzłów DOM
- Następna strona Tworzenie węzłów 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>.
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"
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
Możesz to zrobić w Zmiana węzła W tej sekcji przeczytaj więcej o zmianie wartości węzła.
- Poprzednia strona Usuwanie węzłów DOM
- Następna strona Tworzenie węzłów DOM