Método insertBefore() de XML DOM

Manual de referencia del objeto Node

Definición y uso

El método insertBefore() puede insertar un nuevo nodo hijo antes de un nodo hijo existente.

Este método puede devolver el nuevo nodo hijo.

Sintaxis:

insertBefore(newchild, refchild)
Parámetros Descripción
newchild Insertar un nuevo nodo
refchild Insertar un nuevo nodo antes de este nodo

Consejos y notas

Notas: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 esto. Por lo tanto, en los siguientes ejemplos, utilizaremos una función para verificar el tipo de nodo del último nodo hijo.

El tipo de nodo del nodo de elemento es 1, por lo que si el primer nodo hijo no es un nodo de elemento, se desplazará al siguiente nodo y continuará verificando si este nodo es un nodo de elemento. Este proceso continuará hasta que se encuentre el primer nodo hijo de elemento. De esta manera, podemos obtener el método correcto en Internet Explorer y Mozilla.

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

Ejemplo

En todos los ejemplos, utilizaremos archivos XML books.xml,así como la función de JavaScript loadXMLDoc()

El siguiente fragmento puede crear un nuevo nodo <book> e insertar este nodo antes del último elemento <book> del documento:

//comprobar si el último nodocript es un nodo de elemento
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var newNode=xmlDoc.createElement("book");
var newTitle=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));

Manual de referencia del objeto Node