Método replaceChild() de XML DOM
Definición y uso
El método replaceChild() reemplaza un nodo hijo con otro nodo.
Si tiene éxito,该方法返回被替换的节点,如果失败,则返回 null。
Sintaxis:
elementNode.replaceChild(new_node,old_node)
Parámetros | Descripción |
---|---|
new_node | Obligatorio. Especifica el nuevo nodo. |
old_node | Obligatorio. Especifica el nodo hijo que se debe reemplazar. |
Ejemplo
En todos los ejemplos, utilizaremos el archivo XML books.xml,así como la función JavaScript loadXMLDoc()。
El siguiente fragmento de código reemplaza el primer elemento <title> del primer elemento <book> en "books.xml":
//verificar si el primer nodo hijo es un nodo de elemento
function get_firstchild(n)
{
x=n.firstChild;
mientras (x.nodeType!=1)
{
x=x.nextSibling;
}
devolver x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//crear un elemento de título y un nodo de texto
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Cenas Familiares de Giada");
//agregar el nodo de texto al nodo de título,
newNode.appendChild(newText);
//Reemplazar el último nodo con el nuevo nodo
x.replaceChild(newNode,get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}
Salida:
Cenas familiares de Giada Harry Potter XQuery Kick Start Learning XML
Nota:Internet Explorer ignorará los nodos de texto en blanco generados entre nodos (por ejemplo, símbolos de nueva línea), mientras que Mozilla no lo hará. Por lo tanto, en el ejemplo anterior, creamos una función para crear los subelementos correctos.
Consejo:Para obtener más información sobre las diferencias entre los navegadores IE y Mozilla, visita el tutorial de DOM XML en CodeW3C.com. Navegador DOM Esta sección.