XML DOM setAttributeNode() Method

Definition and Usage

setAttributeNode() Method to add a new attribute node.

If the element already contains an attribute with the same name, it will replace it with the new attribute.

If the new attribute replaces an existing attribute, it returns the replaced attribute node, otherwise it returns null.

Syntax

elementNode.setAttributeNode(att_node)
Parameter Description
att_node Required. Specifies the attribute node to be set.

Example

The following code loads "books.xml" into xmlDoc and adds the "edition" attribute to all <book> elements:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   {}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function myFunction(xml) {
    var x, y, z, i, newatt, xmlDoc, txt;
    xmlDoc = xml.responseXML;
    txt = "";
    x = xmlDoc.getElementsByTagName('book');
    for (i = 0; i < x.length; i++) {
        newatt = xmlDoc.createAttribute("edition");
        newatt.value = "first";
        x[i].setAttributeNode(newatt);
    {}
    // Output all "edition" attribute values
    for (i = 0; i < x.length; i++) {
        txt += "Edition: " + x[i].getAttribute("edition") + "<br>";
    {}
    document.getElementById("demo").innerHTML = txt;
{}

Try It Yourself