DOM - Element Object Method - setAttributeNodeNS



The method setAttributeNodeNS adds a new attribute. If an attribute with that local name and that namespace URI is already present in the element, it is replaced by the new one.

Syntax

Following is the syntax for the usage of the setAttributeNodeNS method.

elementObj.setAttributeNodeNS(newAttr)

S.No. Parameter & Description
1

newAttr

The Attr node to add to the attribute list.

It returns a replaced Attr node.

Example

node_ns.xml contents are as below −

<?xml version = "1.0"?>
<Company>
   <Employee xmlns:e = "http://www.tutorials.com/technical/" category = "technical">
      <e:FirstName e:lang = "en">Tanmay</e:FirstName>
      <e:LastName>Patil</e:LastName>
      <e:ContactNo>1234567890</e:ContactNo>
      <e:Email>tanmaypatil@xyz.com</e:Email>
   </Employee>
   
   <Employee xmlns:n = "http://www.tutorials.com/non-technical/" category = "non-technical">
      <n:FirstName n:lang = "en">Taniya</n:FirstName>
      <n:LastName>Mishra</n:LastName>
      <n:ContactNo>1234667898</n:ContactNo>
      <n:Email>taniyamishra@xyz.com</n:Email>
   </Employee>
</Company>

Following example demonstrates the usage of the setAttributeNodeNS method −

<!DOCTYPE html>
   <head>
      <script>
         function loadXMLDoc(filename) {
            if (window.XMLHttpRequest) {
               xhttp = new XMLHttpRequest();
            } else // code for IE5 and IE6 {
               xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET",filename,false);
            xhttp.send();
            return xhttp.responseXML;
         }
      </script>
   </head>
   <body>
      <script>
         xmlDoc = loadXMLDoc("/dom/node_ns.xml");
         x1 = xmlDoc.getElementsByTagName('FirstName')[0];
         x2 = xmlDoc.getElementsByTagName('FirstName')[1];
         ns="http://www.tutorials.com/technical/";
         var nsattr = x1.getAttributeNodeNS(ns, "lang"); 
         x2.setAttributeNodeNS(nsattr.cloneNode(true));
         document.write(x2.attributes[1].value); // returns: 'en'
     </script>
   </body>
</html>

Execution

Save this file as elementattribute_setAttributeNodeNS.htm on the server path (this file and node_ns.xml should be on the same path in your server). We will get the output as shown below −

en
dom_element_object.htm
Advertisements