Clonación de nodos XML DOM

Ejemplo

El siguiente ejemplo utiliza un archivo XML books.xml.

Función loadXMLDoc()que se encuentra en JavaScript externo, utilizado para cargar archivos XML.

Copiar un nodo y agregarlo a un nodo existente
En este ejemplo, se utiliza cloneNode() para copiar un nodo y agregarlo al nodo raíz del documento XML.

Copiar un nodo

El método cloneNode() crea una copia del nodo especificado.

El método cloneNode() tiene un parámetro (true o false). Este parámetro indica si el nodo copiado incluye todas las propiedades y subnodos del nodo original.

La siguiente secuencia de comandos copia el primer nodo <book> y lo agrega al nodo raíz del documento:

xmlDoc=loadXMLDoc("books.xml");
oldNode=xmlDoc.getElementsByTagName('book')[0];
newNode=oldNode.cloneNode(true);
xmlDoc.documentElement.appendChild(newNode);
//Salida de todos los títulos
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}

Salida:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML
Harry Potter

Ejemplo de explicación:

  1. Utilizando loadXMLDoc() Poner "books.xml"Cargar xmlDoc"
  2. Obtener el nodo a copiar
  3. Copiar el nodo al "newNode" utilizando el método cloneNode
  4. Añadir un nuevo nodo al nodo raíz del documento XML
  5. Salida de todos los títulos del documento XML

TIY