XML DOM replaceChild() metode

Definition og brug

replaceChild() metoden bruger en anden node til at erstatte en undernode.

Hvis metoden lykkes, returnerer den den erstattede node, ellers returnerer den null.

Syntaks:

elementNode.replaceChild(new_node,old_node)
Parameter Beskrivelse
new_node Påkrævet. Angiver den nye node.
old_node Påkrævet. Angiver den undernode, der skal erstattes.

Eksempel

I alle eksempler vil vi bruge XML-filer books.xml,og JavaScript-funktioner loadXMLDoc()

Nedenstående kodefragment erstatter den første <book>-elementets første <title>-element i "books.xml":

//tjek om første barnnode er et elementnode
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];
//opret et titel-element og en tekstenode
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Giadas familie måltider");
//tilføj tekstenode til titelnoden
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:

Giadas Family Dinners
Harry Potter
XQuery Kick Start
Learning XML

Kommentar:Internet Explorer ignorerer mellemrumstekstknuder mellem noder (f.eks. linjeskifts符号), mens Mozilla gør det ikke. Derfor har vi oprettet en funktion til at oprette korrekte underknuder i det ovennævnte eksempel.

Tip:For mere information om forskelle mellem IE og Mozilla-browsere, besøg CodeW3C.coms XML DOM tutorial. DOM browser Dette afsnit.