Metoda XML DOM replaceChild()
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