DOM XML - nœud de clonage

Dans ce chapitre, nous décrirons l' opération Clone Node sur un objet DOM XML. L'opération de clonage du nœud est utilisée pour créer une copie dupliquée du nœud spécifié. cloneNode () est utilisé pour cette opération.

cloneNode ()

Cette méthode retourne un duplicata de ce nœud, c'est-à-dire qu'elle sert de constructeur de copie générique pour les nœuds. Le nœud dupliqué n'a pas de parent (parentNode est nul) et aucune donnée utilisateur.

Syntaxe

La méthode cloneNode () a la syntaxe suivante -

Node cloneNode(boolean deep)
  • deep - Si vrai, clone récursivement le sous-arbre sous le nœud spécifié; si faux, clonez uniquement le nœud lui-même (et ses attributs, s'il s'agit d'un élément).

  • Cette méthode renvoie le nœud dupliqué.

Exemple

L'exemple suivant (clonenode_example.htm) analyse un document XML ( node.xml ) dans un objet DOM XML et crée une copie complète du premier élément 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>

Comme vous pouvez le voir dans l'exemple ci-dessus, nous avons défini le paramètre cloneNode () sur true . Par conséquent, chacun des éléments enfants sous l' élément Employee est copié ou cloné.

Exécution

Enregistrez ce fichier sous clonenode_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Nous obtiendrons la sortie comme indiqué ci-dessous -

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

Vous remarquerez que le premier élément Employee est complètement cloné.