Metoda XML DOM replaceChild()
Definicja i użycie
Metoda replaceChild() zastępuje jeden węzeł podstępny innym węzłem.
Jeśli pomyślnie, metoda zwraca zastąpiony węzeł, w przeciwnym razie zwraca null.
gramatyka:
elementNode.replaceChild(new_node,old_node)
parametry | opis |
---|---|
new_node | wymagane. Określa nowy węzeł. |
old_node | wymagane. Określa wymagany węzeł podstępny. |
przykład
W wszystkich przykładach użyjemy pliku XML books.xmli funkcji JavaScript loadXMLDoc()。
Poniższy fragment kodu zastępuje pierwszy <book> element pierwszego <title> elementu w "books.xml":
//sprawdź, czy pierwszy węzeł dziecka jest węzłem elementu
funkcja get_firstchild(n)
{
x=n.firstChild;
podczas gdy (x.nodeType!=1)
{
x=x.nextSibling;
}
zwróć x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//utwórz element tytułowy i węzeł tekstowy
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Rodzina Giady");
//dodaj węzeł tekstowy do węzła tytułowego,
newNode.appendChild(newText);
//replace the last node with the new node
x.replaceChild(newNode,get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
for (i=0; i<y.length; i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}
Wynik:
Rodzinne wieczerze Giady Harry Potter XQuery Kick Start Learning XML
Komentarz:Internet Explorer ignoruje puste węzły tekstowe między węzłami (np. znaki nowej linii), podczas gdy Mozilla nie robi tego. Dlatego w powyższym przykładzie stworzyliśmy funkcję do tworzenia poprawnych podwęzłów.
Wskazówka:Dla więcej informacji na temat różnic między przeglądarkami IE a Mozilla, odwiedź tutorial XML DOM na CodeW3C.com Przeglądarka DOM Ten dział.