XML DOM replaceChild() metode
DefinITION OG BRUG
replaceChild() metoden kan erstatte en undernode med en anden.
Hvis erstatningen lykkes, kan denne metode returnere det erstattede knudepunkt, hvis erstatningen fejler, returneres NULL.
Syntaks:
nodeObject.replaceChild(new_node,old_node)
Parameter | Beskrivelse |
---|---|
new_node | Obligatorisk. Angiv den nye node. |
old_node | Obligatorisk. Angiv den node, der skal erstattes. |
Ved og kommentarer
Kommentar:Internet Explorer ignorerer mellemrummelige mellemrummelige tekst knudepunkter (f.eks. linjeskiftssymbolet), mens Mozilla gør det ikke. Derfor vil vi i de næste eksempler bruge en funktion til at tjekke den første barn nodes node type.
Element knudepunktets node type er 1, så hvis den første barn node ikke er en element node, vil den flytte til den næste node og fortsætte med at tjekke om denne node er en element node. Denne proces vil fortsætte indtil den første element barn node bliver fundet. Gennem denne metode kan vi få korrekte metoder i Internet Explorer og Mozilla.
VedFor mere information om forskelle mellem IE og Mozillas XML DOM, besøg vores DOM browser kapitel.
eksempel
I alle eksemplerne vil vi bruge XML filen books.xml,og JavaScript funktionen loadXMLDoc()。
Nedenstående kode fragment kan erstatte den første <book< elementets <title> element:
//tjek om den første barn node er en element node
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
//opret et titel element og en tekst node
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Giadas familie måltider");
//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 />");
}
Uddrag:
Giadas familie måltider Harry Potter XQuery Kick Start Learning XML