DOM XML: nodo de clonación
En este capítulo, analizaremos la operación de clonar nodo en un objeto DOM XML. La operación de clonar nodo se utiliza para crear una copia duplicada del nodo especificado. cloneNode () se utiliza para esta operación.
cloneNode ()
Este método devuelve un duplicado de este nodo, es decir, sirve como un constructor de copia genérico para los nodos. El nodo duplicado no tiene padre (parentNode es nulo) ni datos de usuario.
Sintaxis
El método cloneNode () tiene la siguiente sintaxis:
Node cloneNode(boolean deep)
deep : si es verdadero, clona recursivamente el subárbol bajo el nodo especificado; si es falso, clone solo el nodo en sí (y sus atributos, si es un Elemento).
Este método devuelve el nodo duplicado.
Ejemplo
El siguiente ejemplo (clonenode_example.htm) analiza un documento XML ( node.xml ) en un objeto DOM XML y crea una copia en profundidad del primer 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>
Como puede ver en el ejemplo anterior, hemos establecido el parámetro cloneNode () en verdadero . Por lo tanto, cada uno de los elementos secundarios del elemento Empleado se copia o clona.
Ejecución
Guarde este archivo como clonenode_example.htm en la ruta del servidor (este archivo y node.xml deben estar en la misma ruta en su servidor). Obtendremos el resultado como se muestra a continuación:
Tanmay Patil, 1234567890, [email protected]
Taniya Mishra, 1234667898, [email protected]
Tanisha Sharma, 1234562350, [email protected]
Tanmay Patil, 1234567890, [email protected]
Notará que el primer elemento Empleado se clona por completo.