XML DOM Zastąp węzły
Metoda replaceChild() zastępuje określony węzeł.
Właściwość nodeValue zastępuje tekst w węźle tekstowym.
Spróbuj sam - przykłady
Poniższe przykłady wykorzystują plik XML books.xml .
W tym przykładzie zastosowano replaceChild() do zastąpienia pierwszego węzła <book>.
W tym przykładzie użyto właściwości nodeValue do zastąpienia danych w węźle tekstowym.
Zamień węzeł elementu
Metoda replaceChild() służy do zastępowania węzła.
Poniższy fragment kodu zastępuje pierwszy element <book>:
Przykład
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement;
//create a book element, title element and a text node
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
//add the text node to the title node,
newTitle.appendChild(newText);
//add the title node to the book node
newNode.appendChild(newTitle);
y=xmlDoc.getElementsByTagName("book")[0]
//replace the first book node with the new node
x.replaceChild(newNode,y);
Wyjaśnienie przykładu:
- Załaduj " books.xml " do xmlDoc
- Utwórz nowy węzeł elementu <book>
- Utwórz nowy węzeł elementu <title>
- Utwórz nowy węzeł tekstowy z tekstem „Notatnik”
- Dołącz nowy węzeł tekstowy do nowego węzła elementu <title>
- Dołącz nowy węzeł elementu <title> do nowego węzła elementu <book>
- Zastąp pierwszy węzeł elementu <book> nowym węzłem elementu <book>
Zamień dane w węźle tekstowym
Metoda replaceData() służy do zastępowania danych w węźle tekstowym.
Metoda replaceData() ma trzy parametry:
- offset — od czego zacząć zastępowanie znaków. Wartość przesunięcia zaczyna się od zera
- length – Ile znaków do zastąpienia
- string - Ciąg do wstawienia
Przykład
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,8,"Easy");
Wyjaśnienie przykładu:
- Załaduj " books.xml " do xmlDoc
- Pobierz węzeł tekstowy pierwszego węzła elementu <title>
- Użyj metody replaceData, aby zastąpić osiem pierwszych znaków z węzła tekstowego „Łatwy”
Zamiast tego użyj właściwości nodeValue
Łatwiej jest zastąpić dane w węźle tekstowym za pomocą właściwości nodeValue.
Poniższy fragment kodu zastąpi wartość węzła tekstowego w pierwszym elemencie <title> na „Łatwy włoski”:
Przykład
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Italian";
Wyjaśnienie przykładu:
- Załaduj " books.xml " do xmlDoc
- Pobierz węzeł tekstowy pierwszego węzła elementu <title>
- Użyj właściwości nodeValue, aby zmienić tekst węzła tekstowego
Możesz przeczytać więcej o zmianie wartości węzłów w rozdziale Zmiana węzła .