Reemplazo de nodos XML DOM

El método replaceChild() reemplaza el nodo especificado.

La propiedad nodeValue reemplaza el texto del nodo de texto.

Ejemplo

El siguiente ejemplo utiliza un archivo XML books.xml.

Función loadXMLDoc(),ubicado en JavaScript externo, se utiliza para cargar archivos XML.

Reemplazar el nodo de elemento
En este ejemplo, se utiliza replaceChild() para reemplazar el primer nodo <book>.
Reemplazar los datos del nodo de texto
En este ejemplo, se utiliza la propiedad nodeValue para reemplazar los datos del nodo de texto.

Reemplazar el nodo de elemento

El método replaceChild() se utiliza para reemplazar los nodos.

El siguiente fragmento de código reemplaza el primer elemento <book>:

xmlDoc=loadXMLDoc("books.xml");
x = xmlDoc.documentElement;
//Crear un elemento book, un elemento title y un nodo de texto
newNode = xmlDoc.createElement("book");
newTitle = xmlDoc.createElement("title");
newText = xmlDoc.createTextNode("Hello World");
//Añadir el nodo de texto al nodo title
newTitle.appendChild(newText);
//Añadir el nodo title al nodo book
newNode.appendChild(newTitle);
y = xmlDoc.getElementsByTagName("book")[0];
//Usar este nuevo nodo para reemplazar el primer nodo book
x.replaceChild(newNode, y);

Ejemplo de explicación:

  • Usando loadXMLDoc() Coloca "books.xml"Cargar xmlDoc"
  • Crear un nuevo nodo de elemento <book>
  • Crear un nuevo nodo de elemento <title>
  • Crear un nuevo nodo de texto con el texto "Hello World"
  • Añadir este nuevo nodo de texto al nodo de elemento <title>
  • Añadir este nuevo nodo de elemento <title> al nodo de elemento <book> nuevo
  • Reemplazar el primer nodo de elemento <book> con un nuevo nodo de elemento <book>

TIY

Reemplazar los datos del nodo de texto

El método replaceData() se utiliza para reemplazar los datos del nodo de texto.

El método replaceData() tiene tres parámetros:

  • offset - Donde comenzar a reemplazar los caracteres. El valor de offset comienza en 0.
  • length - Cantidad de caracteres a reemplazar
  • string - La cadena de caracteres a insertar
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,8,"hello");

Ejemplo de explicación:

  • Usando loadXMLDoc() Coloca "books.xml"Cargar xmlDoc"
  • Obtener el texto del primer nodo <title>
  • Usa el método replaceData para reemplazar los primeros 8 caracteres del texto del nodo de texto con "hello"

TIY

Usando la propiedad nodeValue

Es más fácil reemplazar el nodo de texto con la propiedad nodeValue.

El siguiente fragmento de código reemplazará el valor del nodo de texto del primer elemento <title> con "Easy Italian":

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Hello World";

Ejemplo de explicación:

  • Usando loadXMLDoc() Coloca "books.xml"Cargar xmlDoc"
  • Obtener el texto del primer nodo <title>
  • Usa la propiedad nodeValue para cambiar el texto de este nodo de texto

TIY

Puedes cambiar el texto de este nodo de texto usando la propiedad Cambiar nodo En esta sección, lee más sobre cómo cambiar el valor del nodo.