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ł.