Eliminar nodos XML DOM
El método removeChild() elimina un nodo especificado.
El método removeAttribute() elimina un atributo específico.
Pruébelo usted mismo - Ejemplos
Los ejemplos utilizan el archivo XML books.xml .
Este ejemplo usa removeChild() para quitar el primer elemento <book>.
Este ejemplo utiliza parentNode y removeChild() para eliminar el elemento <book> actual.
Este ejemplo usa removeChild() para eliminar el nodo de texto del primer elemento <title>.
Este ejemplo usa la propiedad nodeValue() para borrar el nodo de texto del primer elemento <title>.
Este ejemplo usa removeAttribute() para quitar el atributo "category" del primer elemento <book>.
Este ejemplo usa removeAttributeNode() para quitar todos los atributos de todos los elementos <book>.
Eliminar un nodo de elemento
El método removeChild() elimina un nodo especificado.
Cuando se elimina un nodo, también se eliminan todos sus nodos secundarios.
Este código eliminará el primer elemento <book> del xml cargado:
Ejemplo
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Establezca la variable y para que sea el nodo del elemento a eliminar.
- Elimine el nodo del elemento utilizando el método removeChild() del nodo principal
Quitarme a mí mismo: quitar el nodo actual
El método removeChild() es la única forma de eliminar un nodo específico.
Cuando haya navegado hasta el nodo que desea eliminar, es posible eliminar ese nodo utilizando la propiedad parentNode y el método removeChild():
Ejemplo
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Establezca la variable y para que sea el nodo del elemento a eliminar.
- Elimina el nodo del elemento usando la propiedad parentNode y el método removeChild()
Eliminar un nodo de texto
El método removeChild() también se puede usar para eliminar un nodo de texto:
Ejemplo
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Establezca la variable x para que sea el primer nodo del elemento de título
- Establezca la variable y para que sea el nodo de texto para eliminar
- Elimine el nodo del elemento utilizando el método removeChild() del nodo principal
No es muy común usar removeChild() solo para eliminar el texto de un nodo. En su lugar, se puede utilizar la propiedad nodeValue. Véase el párrafo siguiente.
Borrar un nodo de texto
La propiedad nodeValue se puede utilizar para cambiar el valor de un nodo de texto:
Ejemplo
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Obtenga el primer nodo secundario del primer elemento de título.
- Use la propiedad nodeValue para borrar el texto del nodo de texto
Eliminar un nodo de atributo por nombre
El método removeAttribute( ) elimina un nodo de atributo por su nombre.
Ejemplo: removeAttribute('categoría')
Este código elimina el atributo "categoría" en el primer elemento <libro>:
Ejemplo
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Use getElementsByTagName() para obtener nodos de libros
- Elimine el atributo "categoría" del primer nodo del elemento del libro
Recorra y elimine el atributo "categoría" de todos los elementos <libro>:
Eliminar nodos de atributos por objeto
El método removeAttributeNode( ) elimina un nodo de atributo, utilizando el objeto de nodo como parámetro.
Ejemplo: removeAttributeNode(x)
Este código elimina todos los atributos de todos los elementos <book>:
Ejemplo
x = xmlDoc.getElementsByTagName("book");
for (i = 0; i < x.length; i++)
{
while (x[i].attributes.length > 0) {
attnode = x[i].attributes[0];
old_att = x[i].removeAttributeNode(attnode);
}
}
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Use getElementsByTagName() para obtener todos los nodos de libros
- Para cada elemento del libro, compruebe si hay algún atributo.
- Mientras haya atributos en un elemento de libro, elimine el atributo