XML DOM Replace Nodes

The replaceChild() method replaces a specified node.

The nodeValue property replaces text in a text node.

Replace an Element Node

The replaceChild() method is used to replace a node.

The following code fragment replaces the first <book> element:

Example

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement;

//create a book element, title element and a text node
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");

//add the text node to the title node,
newTitle.appendChild(newText);
//add the title node to the book node
newNode.appendChild(newTitle);

y=xmlDoc.getElementsByTagName("book")[0]
//replace the first book node with the new node
x.replaceChild(newNode,y);

Example explained:

 

Replace Data In a Text Node

The replaceData() method is used to replace data in a text node.

The replaceData() method has three parameters:

  • offset – Where to begin replacing characters. Offset value starts at zero
  • length – How many characters to replace
  • string – The string to insert

Example

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];

x.replaceData(0,8,"Easy");

Use the nodeValue Property Instead

It is easier to replace the data in a text node using the nodeValue property.

The following code fragment will replace the text node value in the first <title> element with “Easy Italian”:

Example

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];

x.nodeValue="Easy Italian";