Reemplazar nodos DOM XML

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

nodeValue La propiedad reemplaza el texto del nodo de texto.

Reemplazar el nodo del elemento

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

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

Ejemplo

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("Un nuevo libro");
// Añadir el nodo de texto al nodo title
newTitle.appendChild(newText);
// Añadir este nodo title al nodo book
newNode.appendChild(newTitle);
y=xmlDoc.getElementsByTagName("book")[0];
// Reemplazar el primer nodo del elemento book con el nuevo nodo
x.replaceChild(newNode,y);

x.nodeValue="Un nuevo libro";

Pruebe usted mismo

  1. Ejemplo de explicación: books.xml Cargado a xmlDoc en
  2. Crear un nuevo nodo del elemento <book>
  3. Crear un nuevo nodo del elemento <title>
  4. Crear un nuevo nodo de texto que contenga el texto "Un nuevo libro"
  5. Añadir este nuevo nodo de texto al nuevo nodo del elemento <title>
  6. Añadir este nuevo nodo del elemento <title> al nuevo nodo del elemento <book>
  7. Reemplazar el primer nodo del elemento <book> con un nuevo nodo del elemento <book>

Reemplazar los datos del nodo de texto

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

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

  • offset - Desde dónde comenzar a reemplazar los caracteres. El valor de desplazamiento comienza en cero
  • length - El número de caracteres a reemplazar
  • string - La cadena de caracteres a insertar

Ejemplo

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,4,"Un nuevo libro");

x.nodeValue="Un nuevo libro";

Pruebe usted mismo

  1. Ejemplo de explicación: books.xml Cargado a xmlDoc en
  2. Obtener el texto del nodo del primer elemento <title>
  3. Uso replaceData() El método reemplazará los primeros ocho caracteres del nodo de texto con "Un nuevo libro"

Utilice la propiedad nodeValue en su lugar

Uso nodeValue Las propiedades son más fáciles de reemplazar los datos del nodo de texto.

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

Ejemplo

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="一本新书";

x.nodeValue="Un nuevo libro";

Pruebe usted mismo

  1. Ejemplo de explicación: books.xml Cargado a xmlDoc en
  2. Obtener el texto del nodo del primer elemento <title>
  3. Uso nodeValue Atributos para cambiar el texto del nodo

Puede leer más sobre cómo cambiar el valor de los nodos en el capítulo de 'Cambiar nodos'.