February 8, 2002 - Adding An Attribute to An XML Tree | WebReference

February 8, 2002 - Adding An Attribute to An XML Tree

Yehuda Shiran February 8, 2002
Adding An Attribute to An XML Tree
Tips: February 2002

Yehuda Shiran, Ph.D.
Doc JavaScript

You can add an attribute node to an XML tree with the createAttribute() method. The syntax of the method is:

  createAttribute(name)
where name is a string specifying the new attribute's name. This name will be echoed in the new node's nodeName property.

Let's look at an example. First, let's read in our mydvd XML file:

  var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
  xmlDoc.async = false;
  xmlDoc.load("mydvd.xml");
Now, find the root of the tree and create the new attribute object:

  root = xmlDoc.documentElement;
  newAtt = xmlDoc.createAttribute("Year");
Create a collection of all of root's attributes and assign it to nameNodeMap:

  namedNodeMap = root.attributes;
Use the setNamedItem() method to set one of the attributes in this collection:

  namedNodeMap.setNamedItem(newAtt);
Let's summarize the above calls in one function:

  function addAttribute() {
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    var root;
    var newAtt;
    var namedNodeMap;
    xmlDoc.async = false;
    xmlDoc.load("mydvd.xml");
    alert(xmlDoc.documentElement.xml);
    root = xmlDoc.documentElement;
    newAtt = xmlDoc.createAttribute("Year");
    namedNodeMap = root.attributes;
    namedNodeMap.setNamedItem(newAtt);
    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 in the <sales> tag.