XML DOM - Eliminar nodo

En este capítulo, estudiaremos sobre la operación XML DOM Remove Node . La operación de eliminación de nodo elimina el nodo especificado del documento. Esta operación se puede implementar para eliminar los nodos como un nodo de texto, un nodo de elemento o un nodo de atributo.

Los siguientes son los métodos que se utilizan para eliminar la operación de nodo:

  • removeChild()

  • removeAttribute()

removeChild ()

El método removeChild () elimina el nodo hijo indicado por oldChild de la lista de hijos y lo devuelve. Eliminar un nodo hijo equivale a eliminar un nodo de texto. Por lo tanto, la eliminación de un nodo secundario elimina el nodo de texto asociado a él.

Sintaxis

La sintaxis para usar removeChild () es la siguiente:

Node removeChild(Node oldChild) throws DOMException

Dónde,

  • oldChild : es el nodo que se está eliminando.

  • Este método devuelve el nodo eliminado.

Ejemplo: eliminar nodo actual

El siguiente ejemplo (removecurrentnode_example.htm) analiza un documento XML ( node.xml ) en un objeto DOM XML y elimina el nodo especificado <ContactNo> del nodo principal.

<!DOCTYPE html>
<html>
   <head>
      <script>
         function loadXMLDoc(filename) {
            if (window.XMLHttpRequest) {
               xhttp = new XMLHttpRequest();
            } else // code for IE5 and IE6 {
               xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET",filename,false);
            xhttp.send();
            return xhttp.responseXML;
         }
      </script>
   </head>
   <body>
      <script>
         xmlDoc = loadXMLDoc("/dom/node.xml");

         document.write("<b>Before remove operation, total ContactNo elements: </b>");
         document.write(xmlDoc.getElementsByTagName("ContactNo").length);
         document.write("<br>");

         x = xmlDoc.getElementsByTagName("ContactNo")[0];
         x.parentNode.removeChild(x);

         document.write("<b>After remove operation, total ContactNo elements: </b>");
         document.write(xmlDoc.getElementsByTagName("ContactNo").length);
      </script>
   </body>
</html>

En el ejemplo anterior:

  • x = xmlDoc.getElementsByTagName ("ContactNo") [0] obtiene el elemento <ContactNo> indexado en 0.

  • x.parentNode.removeChild (x); elimina el elemento <ContactNo> indexado en 0 del nodo principal.

Ejecución

Guarde este archivo como removecurrentnode_example.htm en la ruta del servidor (este archivo y node.xml deben estar en la misma ruta en su servidor). Obtenemos el siguiente resultado:

Before remove operation, total ContactNo elements: 3
After remove operation, total ContactNo elements: 2

Ejemplo: eliminar nodo de texto

El siguiente ejemplo (removetextNode_example.htm) analiza un documento XML ( node.xml ) en un objeto DOM XML y elimina el nodo secundario especificado <FirstName>.

<!DOCTYPE html>
<html>
   <head>
      <script>
         function loadXMLDoc(filename) {
            if (window.XMLHttpRequest) {
               xhttp = new XMLHttpRequest();
            } else // code for IE5 and IE6 {
                xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET",filename,false);
            xhttp.send();
            return xhttp.responseXML;
         }
      </script>
   </head>
   <body>
      <script>
         xmlDoc = loadXMLDoc("/dom/node.xml");

         x = xmlDoc.getElementsByTagName("FirstName")[0];

         document.write("<b>Text node of child node before removal is:</b> ");
         document.write(x.childNodes.length);
         document.write("<br>");

         y = x.childNodes[0];
         x.removeChild(y);
         document.write("<b>Text node of child node after removal is:</b> ");
         document.write(x.childNodes.length);

      </script>
   </body>
</html>

En el ejemplo anterior:

  • x = xmlDoc.getElementsByTagName ("Nombre") [0]; - obtiene el primer elemento <FirstName> a la x indexada en 0.

  • y = x.childNodes [0]; - en esta línea y contiene el nodo hijo que se va a eliminar.

  • x.removeChild (y); : Elimina el nodo hijo especificado.

Ejecución

Guarde este archivo como removetextNode_example.htm en la ruta del servidor (este archivo y node.xml deben estar en la misma ruta en su servidor). Obtenemos el siguiente resultado:

Text node of child node before removal is: 1
Text node of child node after removal is: 0

removeAttribute ()

El método removeAttribute () elimina un atributo de un elemento por su nombre.

Sintaxis

La sintaxis para usar removeAttribute () es la siguiente:

void removeAttribute(java.lang.String name) throws DOMException

Dónde,

  • nombre : es el nombre del atributo que se va a eliminar.

Ejemplo

El siguiente ejemplo (removeelementattribute_example.htm) analiza un documento XML ( node.xml ) en un objeto DOM XML y elimina el nodo de atributo especificado.

<!DOCTYPE html>
<html>
   <head>
      <script>
         function loadXMLDoc(filename) {
            if (window.XMLHttpRequest) {
               xhttp = new XMLHttpRequest();
            } else // code for IE5 and IE6 {
                xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET",filename,false);
            xhttp.send();
            return xhttp.responseXML;
         }
      </script>
   </head>
   <body>

      <script>
         xmlDoc = loadXMLDoc("/dom/node.xml");

         x = xmlDoc.getElementsByTagName('Employee');

         document.write(x[1].getAttribute('category'));
         document.write("<br>");

         x[1].removeAttribute('category');

         document.write(x[1].getAttribute('category'));

      </script>
   </body>
</html>

En el ejemplo anterior:

  • document.write (x [1] .getAttribute ('categoría')); - se invoca el valor de la categoría de atributo indexada en la 1ª posición.

  • x [1] .removeAttribute ('categoría'); : Elimina el valor del atributo.

Ejecución

Guarde este archivo como removeelementattribute_example.htm en la ruta del servidor (este archivo y node.xml deben estar en la misma ruta en su servidor). Obtenemos el siguiente resultado:

Non-Technical
null