XML DOM - Clone Node

In questo capitolo, discuteremo l' operazione Clone Node su un oggetto DOM XML. L'operazione di clonazione del nodo viene utilizzata per creare una copia duplicata del nodo specificato. cloneNode () viene utilizzato per questa operazione.

cloneNode ()

Questo metodo restituisce un duplicato di questo nodo, vale a dire funge da costruttore di copia generico per i nodi. Il nodo duplicato non ha un genitore (parentNode è null) e nessun dato utente.

Sintassi

Il metodo cloneNode () ha la seguente sintassi:

Node cloneNode(boolean deep)
  • deep - Se true, clona ricorsivamente la sottostruttura sotto il nodo specificato; se falso, clona solo il nodo stesso (e i suoi attributi, se è un elemento).

  • Questo metodo restituisce il nodo duplicato.

Esempio

Il seguente esempio (clonenode_example.htm) analizza un documento XML ( node.xml ) in un oggetto DOM XML e crea una copia completa del primo elemento Employee .

<!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);

         firstname = xmlDoc.getElementsByTagName("FirstName");
         lastname = xmlDoc.getElementsByTagName("LastName");
	 contact = xmlDoc.getElementsByTagName("ContactNo");
	 email = xmlDoc.getElementsByTagName("Email");
         for (i = 0;i < firstname.length;i++) {
            document.write(firstname[i].childNodes[0].nodeValue+'  
               '+lastname[i].childNodes[0].nodeValue+',  
               '+contact[i].childNodes[0].nodeValue+',  '+email[i].childNodes[0].nodeValue);
            document.write("<br>");
         }
      </script>
   </body>
</html>

Come puoi vedere nell'esempio sopra, abbiamo impostato il parametro cloneNode () su true . Quindi ogni elemento figlio sotto l' elemento Employee viene copiato o clonato.

Esecuzione

Salva questo file come clonenode_example.htm sul percorso del server (questo file e node.xml dovrebbero trovarsi sullo stesso percorso nel tuo server). Otterremo l'output come mostrato di seguito -

Tanmay Patil, 1234567890, [email protected]
Taniya Mishra, 1234667898, [email protected]
Tanisha Sharma, 1234562350, [email protected]
Tanmay Patil, 1234567890, [email protected]

Noterai che il primo elemento Employee viene clonato completamente.