XML DOM replaceChild() methode
definitie en gebruik
De replaceChild() methode vervangt een subnode met een andere node.
Indien succesvol, retourneert deze methode de vervangen node, indien mislukt, retourneert het null.
syntaxis:
elementNode.replaceChild(new_node,old_node)
parameter | beschrijving |
---|---|
new_node | verplicht. Stel het nieuwe node vast. |
old_node | verplicht. Stel het te vervangen subnode vast. |
voorbeeld
In alle voorbeelden gebruiken we de XML-bestand books.xmlen de JavaScript-functie loadXMLDoc()。
De volgende codefragment vervangt de eerste <title> element van de eerste <book> element in "books.xml":
//controleer of de eerste kindnode een elementnode is
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//maak een titel-element en een tekstnode aan
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Giada's Gezinsmaaltijden");
//voeg de tekstnode toe aan de titelnode,
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 />");
}
Output:
Giada's Family Dinners Harry Potter XQuery Kick Start Learning XML
Note:Internet Explorer will ignore the generated white space text nodes between nodes (such as newline symbols), while Mozilla will not do so. Therefore, in the above example, we created a function to create the correct child elements.
Tip:For more information about the differences between IE and Mozilla browsers, please visit the XML DOM tutorial on CodeW3C.com DOM browser This section.