XML DOM - Create Nodes

The createElement() method creates a new element node

Create a New Element Node

The createElement() method creates a new element node:

Example

newElement = xmlDoc.createElement("edition");

xmlDoc.getElementsByTagName("book")[0].appendChild(newElement);

Example explained:

  • Suppose books.xml is loaded into xmlDoc
  • Create a new element node <edition>
  • Append the element node to the first <book> element
  • Loop through and add an element to all <book> elements: Try it yourself

    Create a New Attribute Node

    The createAttribute() is used to create a new attribute node:

    Example

    newAtt = xmlDoc.createAttribute("edition");
    newAtt.nodeValue = "first";

    xmlDoc.getElementsByTagName("title")[0].setAttributeNode(newAtt);

    Example explained:

  • Suppose books.xml is loaded into xmlDoc
  • Create a new attribute node "edition"
  • Set the value of the attribute node to "first"
  • Add the new attribute node to the first <title> element
  • Loop through all <title> elements and add a new attribute node: Try it yourself

    If the attribute already exists, it is replaced by the new one.

    Create an Attribute Using setAttribute()

    Since the setAttribute() method creates a new attribute if the attribute does not exist, it can be used to create a new attribute.

    Example

    xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");

    Example explained:

  • Suppose books.xml is loaded into xmlDoc
  • Set the attribute "edition" value to "first" for the first <book> element
  • Loop through all <title> elements and add a new attribute: Try it yourself

    Create a Text Node

    The createTextNode() method creates a new text node:

    Example

    newEle = xmlDoc.createElement("edition");
    newText = xmlDoc.createTextNode("first");
    newEle.appendChild(newText);

    xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

    Example explained:

  • Suppose books.xml is loaded into xmlDoc
  • Create a new element node <edition>
  • Create a new text node with the text "first"
  • Append the new text node to the element node
  • Append the new element node to the first <book> element
  • Add an element node, with a text node, to all <book> elements: Try it yourself

    Create a CDATA Section Node

    The createCDATASection() method creates a new CDATA section node.

    Example

    newCDATA = xmlDoc.createCDATASection("Special Offer & Book Sale");

    xmlDoc.getElementsByTagName("book")[0].appendChild(newCDATA);

    Example explained:

  • Suppose books.xml is loaded into xmlDoc
  • Create a new CDATA section node
  • Append the new CDATA node to the first <book> element
  • Loop through, and add a CDATA section, to all <book> elements: Try it yourself

    Create a Comment Node

    The createComment() method creates a new comment node.

    Example

    newComment = xmlDoc.createComment("Revised March 2015");

    xmlDoc.getElementsByTagName("book")[0].appendChild(newComment);

    Example explained:

  • Suppose books.xml is loaded into xmlDoc using
  • Create a new comment node
  • Append the new comment node to the first <book> element
  • Loop through, and add a comment node, to all <book> elements: Try it yourself