Quick References
      ADO
      ASP
      CSS2
      HTML
      JavaScript
      Jet SQL
      VBScript
      WML
      WMLScript
      WSH
      XHTML
      XML DOM
      XSLT

Features
      Knowledge Base
      Tutorials

Partners
     ZVON.ORG
     XML
     Planet Source Code
     VisualBuilder
     Web Design
     Your HTML Source
     XML/XSLT Forums
     ASPAlliance
     Scripts
     
     Programmers Heaven
     Tek-Tips Forums
     Developer Fusion
     Code Project











METHOD:  Object::replaceChild

Object  Attr   CDATASection   CharacterData   Comment   Document   DocumentFragment   DocumentType   Entity   EntityReference   Node   Notation   ProcessingInstruction   Text
 
Object.replaceChild(newChild, oldChild)

The replaceChild 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.

To illustrate this we shall 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.

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

Code (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



 


Copyright 1999-2005 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information