XML DOM » Node » replaceChild

Syntax:
node.replaceChild(newChild, oldChild)

This method is used to replace one of a node's children with another. It returns the old child.

All the nodes involved in the operation must be compatible; i.e. the old node must be a child node of this node, and the new node must be writeable and of a type that can be a child node to it (see the list of Node Types). If the new child node is a DocumentFragment all its children replace the old node in the same order, and if the node already exists, then it is first removed.

Examples

Code:
XML:

<names>
   <name>Alice</name>
   <name>Bert</name>
   <name>Charlie</name>
   <name>Diane</name>
   <name>Eric</name>
</names>

JavaScript:

var xml_doc = new
ActiveXObject("Microsoft.XMLDOM");
xml_doc.async = false;
xml_doc.load("names.xml");

var root = xml_doc.documentElement;
var new_node = root.removeChild(root.lastChild);
var old_node = root.replaceChild(new_node, root.childNodes.item(1));
root.appendChild(old_node);

var names = xml_doc.getElementsByTagName("name");
var i, n_names = names.length;
for (i = 0; i < n_names; i++)
   document.write(names[i].firstChild.nodeValue + "<br>");
Output:
Alice
Eric
Charlie
Diane
Bert
Explanation:

In this example, we use the 'names.xml' file and swap the second 'name' element (Bert) with the last (Eric). We first remove the latter and assign it to the variable new_node. We then use the replaceChild method to replace the former with new_node, assigning the returned old node to old_node. Finally old_node is appended to the end of the child node list and the values of the firstChild of each (the text node) are displayed in rearranged order.

Language(s): JavaScript XML