spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / javascript / column102


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

Developer News
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?

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

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Rolling Out Your Own HTML Application Version Control · HTML 5: Client-side Storage · Working with Ajax Server Extensions
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Wi-Fi Product Watch, November 2009 · Chip Market Recovering From '08 Collapse · Low-Cost Tools to Kickstart Your New Business


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