Eliminar nodos XML DOM
- Página anterior Cambio de nodos DOM
- Página siguiente Reemplazo de nodos DOM
El método removeChild() elimina el nodo especificado.
El método removeAttribute() elimina la propiedad especificada.
Ejemplo
El siguiente ejemplo utiliza un archivo XML books.xml
Función loadXMLDoc(),ubicado en JavaScript externo, utilizado para cargar archivos XML.
- Eliminar nodo de elemento
- Este ejemplo utiliza removeChild() para eliminar el primer elemento <book>.
- Eliminar nodo de elemento actual
- Este ejemplo utiliza parentNode y removeChild() para eliminar el elemento <book> actual.
- Eliminar nodo de texto
- Este ejemplo utiliza removeChild() para eliminar el nodo de texto del primer elemento <title>.
- Vaciar el texto del nodo de texto
- Este ejemplo utiliza la propiedad nodeValue() para vaciar el nodo de texto del primer elemento <title>.
- Eliminar propiedad según el nombre
- Este ejemplo utiliza removeAttribute() para eliminar la propiedad "category" del primer elemento <book>.
- Eliminar propiedad según el objeto
- Este ejemplo utiliza removeAttributeNode() para eliminar todas las propiedades del elemento <book>.
Eliminar nodo de elemento
El método removeChild() elimina el nodo especificado.
Cuando se elimina un nodo, también se eliminan todos sus nodos hijos.
El siguiente fragmento de código elimina el primer elemento <book> del xml cargado:
xmlDoc=loadXMLDoc("books.xml"); y=xmlDoc.getElementsByTagName("book")[0]; xmlDoc.documentElement.removeChild(y);
Ejemplo de explicación:
- Al usar loadXMLDoc() Coloque "books.xml"Cargar en xmlDoc"
- Asigna la variable y al nodo de elemento que se va a eliminar
- Elimina el nodo de elemento usando el método removeChild() desde el nodo padre
Eliminar a sí mismo - eliminar el nodo actual
El método removeChild() es el único método que puede eliminar un nodo específico.
Cuando ya hayas localizado el nodo que deseas eliminar, puedes eliminar este nodo usando la propiedad parentNode y el método removeChild():
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; x.parentNode.removeChild(x);
Ejemplo de explicación:
- Al usar loadXMLDoc() Coloque "books.xml"Cargar en xmlDoc"
- Asigna la variable y al nodo de elemento que se va a eliminar
- Elimina este nodo de elemento usando la propiedad parentNode y el método removeChild()
Eliminar nodo de texto
El método removeChild() se puede usar para eliminar nodos de texto:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0]; y=x.childNodes[0]; x.removeChild(y);
Ejemplo de explicación:
- Al usar loadXMLDoc() Coloque "books.xml"Cargar en xmlDoc"
- Asigna la variable x al nodo del primer elemento title
- Asigna la variable y al nodo de texto que se va a eliminar
- Elimina el nodo usando el método removeChild() desde el nodo padre
No se usa muy a menudo removeChild() para eliminar texto del nodo. Se puede usar la propiedad nodeValue en su lugar. Vea el siguiente párrafo.
Vaciar el nodo de texto
La propiedad nodeValue se puede usar para cambiar o vaciar el valor del nodo de texto:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="";
Ejemplo de explicación:
- Al usar loadXMLDoc() Coloque "books.xml"Cargar en xmlDoc"
- Asigna la variable x al nodo de texto del primer elemento title
- Usa la propiedad nodeValue para vaciar el texto del nodo de texto
Recorre y cambia el texto de todos los elementos <title>: TIY
Eliminar el nodo de propiedad según el nombre
El método removeAttribute(name) se utiliza para eliminar el nodo de propiedad según el nombre.
Ejemplo: removeAttribute('category')
El siguiente fragmento de código elimina la propiedad "category" del primer elemento <book>:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book"); x[0].removeAttribute("category");
Ejemplo de explicación:
- Al usar loadXMLDoc() Coloque "books.xml"Cargar en xmlDoc"
- Usa getElementsByTagName() para obtener el nodo book
- Eliminar la propiedad "category" del primer nodo del elemento book
Recorrer y eliminar todas las propiedades "category" de todos los elementos <book>: TIY.
Eliminar nodos de atributo según el objeto
El método removeAttributeNode(node) utiliza un objeto Node como parámetro para eliminar el nodo de atributo.
Ejemplo: removeAttributeNode(x)
El siguiente fragmento de código elimina todas las propiedades de todos los elementos <book>:
xmlDoc=loadXMLDoc("books.xml"); 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 de explicación:
- Al usar loadXMLDoc() Coloque "books.xml"Cargar en xmlDoc"
- Utilice getElementsByTagName() para obtener todos los nodos book
- Verifique si cada elemento book tiene atributos
- Si hay atributos en algún elemento book, elimine ese atributo
- Página anterior Cambio de nodos DOM
- Página siguiente Reemplazo de nodos DOM