Metoda XML DOM replaceChild()

Podręcznik referencyjny obiektu Node

Definicja i użycie

Metoda replaceChild() może zastąpić jeden węzeł dziecka innym.

Jeśli pomyślnie zastąpi się, ta metoda zwróci zastąpiony węzeł, w przeciwnym razie zwróci NULL.

Gramatyka:

nodeObject.replaceChild(new_node,old_node)
Parametry Opis
new_node Wymagane. Określ nowy węzeł.
old_node Wymagane. Określ węzeł do zastąpienia.

Porady i komentarze

Komentarz:Internet Explorer ignoruje węzły tekstowe pomiędzy węzłami (np. znaki nowej linii), podczas gdy Mozilla nie robi tego. Dlatego w poniższych przykładach użyjemy funkcji do sprawdzenia typu węzła pierwszego dziecka.

Typ węzła elementu wynosi 1, więc jeśli pierwszy węzeł dziecka nie jest węzłem elementu, on przechodzi do następnego węzła i kontynuuje sprawdzanie, czy ten węzeł jest węzłem elementu. Proces ten będzie kontynuowany, aż pierwszy węzeł elementu zostanie znaleziony. Dzięki temu możemy uzyskać poprawne metody w Internet Explorer i Mozilla.

Porada:Aby uzyskać więcej informacji na temat różnic między XML DOM w przeglądarkach IE i Mozilla, odwiedź naszą przeglądarka DOM rozdział

przykład

W wszystkich przykładach użyjemy pliku XML books.xml, oraz funkcji JavaScript loadXMLDoc()

Poniższy fragment kodu można zastąpić elementem <title> pierwszego elementu <book<:

//sprawdź, czy pierwszy węzeł dziecka jest węzłem elementu
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
zwróć x;
}
xmlDoc=loadXMLDoc("books.xml");
//utwórz element tytułu i węzeł tekstowy
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Rodzinne obiady Giady");
//add the text node to the title node
newNode.appendChild(newText);
//replace the first child node with the new node
var x=xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode,get_firstchild(x));
//output all titles
var y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
  {
  document.write(y[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

Wynik:

Rodzinne obiady Giady
Harry Potter
XQuery Kick Start
Learning XML

Podręcznik referencyjny obiektu Node