Web Services, Part VII: XML Object's Nodes and Types: Creating a New Node - Doc JavaScript | WebReference

Web Services, Part VII: XML Object's Nodes and Types: Creating a New Node - Doc JavaScript


Web Services, Part VII: XML Object's Nodes and Types

Creating a New Node

The DOMDocument object exposes the createNode() method. You can use this method to create most of the dozen node types. You cannot create nodes of the following types:

The syntax of the method is as follows:

  createNode(type, name, namespaceURI)

where:

Let's look at an example. The following code creates an XML object from an external file:

  var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
  xmlDoc.async = false;

and then creates a new attribute node:

  MyNode = xmlDoc.createNode("attribute", "Year", "");

The node is an object. We need to link him to our mydvd tree. Let's add it to the root's first child node. The root of the tree is <sales>. Its first child node, (see the tree representation in Page 2 of our previous column), is <summary>. Let's code it. You usually start navigating the tree from the root. The root of the tree is:

  xmlDoc.documentElement;

The collection of the root's childNodes is:

  xmlDoc.documentElement.childNodes

The first item on this collection is the first child:

  xmlDoc.documentElement.childNodes.item(0)

The collection of attributes of this node (<sales>) is:

  xmlDoc.documentElement.childNodes.item(0).attributes

To insert the new node to this collection, you use the setNamedItem() method, with the new node object as a parameter:

  xmlDoc.documentElement.childNodes.item(0).attributes.setNamedItem(MyNode)

The addNode() function summarizes the above calls:

function addNode() {
  var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
  var MyNode;
  var namedNodeMap;
  xmlDoc.async = false;
  xmlDoc.load("mydvd.xml");
  alert(xmlDoc.documentElement.xml);
  MyNode = xmlDoc.createNode("attribute", "Year", "");
  namedNodeMap = xmlDoc.documentElement.childNodes.item(0).attributes;
  namedNodeMap.setNamedItem(MyNode);
  alert(xmlDoc.documentElement.xml);
}

Try it now. The first alert box echoed the XML file before adding the attribute node. The second alert box reflects the addition. Notice the Year attribute within the <summary> tag.


Next: How to create an element (tag) node

http://www.internet.com


Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: January 28, 2002
Revised: January 28, 2002

URL: http://www.webreference.com/js/column102/4.html