Método XML DOM appendChild()

Manual de referencia para el objeto Node

Definición y uso

El método appendChild() puede agregar un nuevo nodo hijo al final de la lista de nodos hijos del nodo.

Este método puede devolver este nuevo nodo hijo.

Sintaxis:

appendChild(newchild)
Parámetro Descripción
newchild Nodo añadido

Valor devuelto

Nodo añadido.

Descripción

Este método añadirá el nodo newchild al documento, haciendo que sea el último hijo del nodo actual.

Si newchild ya existe en el árbol del documento, se eliminará del árbol del documento y luego se volverá a insertar en su nueva ubicación. Si newchild es un nodo DocumentFragment, no se insertará directamente, sino que se insertarán sus nodos hijos en el final del array childNodes[] del nodo actual.

Atención, un nodo de un documento (o un nodo creado por un documento) no puede insertarse en otro documento. Es decir, la propiedad ownerDocument del newchild debe ser la misma que la propiedad ownerDocument del nodo actual.

Ejemplo

La siguiente función insertará un nuevo párrafo al final del documento:

function appendMessage (message) {
  var pElement = document.createElement("p");
  var messageNode = document.createTextNode(message);
  pElement.appendChild(messageNode);
  document.body.appendChild(pElement);
}

Ejemplo

En todos los ejemplos, utilizaremos el archivo XML books.xmly la función JavaScript loadXMLDoc()

El siguiente fragmento de código puede crear y agregar un nodo a la primera elemento <book>, luego mostrar todos los nodos hijos del primer elemento <book>:

xmlDoc=loadXMLDoc("books.xml");
var newel=xmlDoc.createElement('edition');
var newtext=xmlDoc.createTextNode('First');
newel.appendChild(newtext);
var x=xmlDoc.getElementsByTagName('book')[0];
x.appendChild(newel);;
var y=x.childNodes;
for (var i=0;i<y.length;i++)
  { 
  //Mostrar solo nodos de elemento
  if (y[i].nodeType==1)
    { 
    document.write(y[i].nodeName);
    document.write("<br />");
    } 
  }

Salida:

título
autor
año
precio
edición

Nota:Internet Explorer ignora los nodos de texto en blanco generados entre los nodos (por ejemplo, símbolos de nueva línea), mientras que Mozilla no hace lo mismo. Por lo tanto, en el siguiente ejemplo, solo se procesan los nodos de elemento (los nodos de elemento nodeType=1).

Consejo:Para obtener más información sobre las diferencias entre XML DOM en IE y Mozilla, visite nuestro Navegador DOM Capítulo.

Manual de referencia para el objeto Node