XML DOM | cloneNode Method

XML DOM - cloneNode Method


Hello folks! welcome back to a new edition of our tutorial on XML DOM. In this tutorial, we are going to be studying about the XML DOM cloneNode Method.

The XML DOM cloneNode method is used to create a duplicate node, when overridden in a derived class.

Syntax

The following below is the syntax to use the cloneNode Method -

nodeObject.cloneNode(boolean deep)

Parameter Details

S.No.Parameter & Description
1

deep

If true, recursively clones the subtree under the specified node; if false, clone only the node itself (and its attributes, if it is an Element).


Return Value

This method returns the duplicated node.

Example

Following below are the node.xml contents -

<?xml version = "1.0"?>
<Company>
   <Employee category = "Technical">
      <FirstName>Kennedy</FirstName>
      <LastName>Nkpara</LastName>
      <ContactNo>1234567890</ContactNo>
      <Email>kennedynkpara@xyz.com</Email>
   </Employee>
   
   <Employee category = "Non-Technical">
      <FirstName>Stephanie</FirstName>
      <LastName>Francis</LastName>
      <ContactNo>1234667898</ContactNo>
      <Email>stephaniefrancis@xyz.com</Email>
   </Employee>
   
   <Employee category = "Management">
      <FirstName>Justice</FirstName>
      <LastName>Dauglas</LastName>
      <ContactNo>1234562350</ContactNo>
      <Email>justicedauglas@xyz.com</Email>
   </Employee>
</Company>


The following example below illustrates the usage of the cloneNode method -

<!DOCTYPE html>
<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.xml");

         x = xmlDoc.getElementsByTagName('Employee')[0];
         clone_node = x.cloneNode(true);
         xmlDoc.documentElement.appendChild(clone_node);
         document.write("Following list has cloned node: ");
         document.write("<br>");
         y = xmlDoc.getElementsByTagName("LastName");
         for (i = 0; i < y.length; i ++)
         {
            document.write(y[i].childNodes[0].nodeValue);
            document.write("<br>");
         }
      </script>
   </body>
</html>

Output

Save file as nodemethod_clonenode.html on the server's path (this file and node.xml should be on the same path in your server). This gives us the following output below -

Following list has cloned node :
Nkpara
Francis
Douglas
Nkpara

From the above output, you will notice that the first LastName Nkpara is cloned.


Alright guys! This is where we are going to be rounding up for this tutorial post. In our next tutorial, we will be studying about XML DOM compareDocumentPosition Method.

Feel free to ask your questions where necessary and we will attend to them as soon as possible. If this tutorial was helpful to you, you can use the share button to share this tutorial.

Follow us on our various social media platforms to stay updated with our latest tutorials. You can also subscribe to our newsletter in order to get our tutorials delivered directly to your emails.

Thanks for reading and bye for now.