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:

  • Load books.xml into xmlDoc
  • Create a new element node <book>
  • Create a new element node <title>
  • Create a new text node with the text "A Notebook"
  • Append the new text node to the new element node <title>
  • Append the new element node <title> to the new element node <book>
  • Replace the first <book> element node with the new <book> element node
  • 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");

    Example explained:

  • Load books.xml into xmlDoc
  • Get the text node of the first <title> element node
  • Use the replaceData method to replace the eight first characters from the text node with "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";

    Example explained:

  • Load books.xml into xmlDoc
  • Get the text node of the first <title> element node
  • Use the nodeValue property to change the text of the text node
  • You can read more about changing node values in the Change Node chapter.