XML DOM - Supprimer le nœud

Dans ce chapitre, nous étudierons l'opération XML DOM Remove Node . L'opération de suppression de nœud supprime le nœud spécifié du document. Cette opération peut être implémentée pour supprimer les nœuds comme le nœud de texte, le nœud d'élément ou un nœud d'attribut.

Voici les méthodes utilisées pour l'opération de suppression de nœud -

  • removeChild()

  • removeAttribute()

removeChild ()

La méthode removeChild () supprime le nœud enfant indiqué par oldChild de la liste des enfants et le renvoie. La suppression d'un nœud enfant équivaut à supprimer un nœud de texte. Par conséquent, la suppression d'un nœud enfant supprime le nœud de texte qui lui est associé.

Syntaxe

La syntaxe pour utiliser removeChild () est la suivante -

Node removeChild(Node oldChild) throws DOMException

Où,

  • oldChild - est le nœud en cours de suppression.

  • Cette méthode renvoie le nœud supprimé.

Exemple - Supprimer le nœud actuel

L'exemple suivant (removecurrentnode_example.htm) analyse un document XML ( node.xml ) dans un objet XML DOM et supprime le nœud spécifié <ContactNo> du nœud parent.

<!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>

Dans l'exemple ci-dessus -

  • x = xmlDoc.getElementsByTagName ("ContactNo") [0] obtient l'élément <ContactNo> indexé à 0.

  • x.parentNode.removeChild (x); supprime l'élément <ContactNo> indexé à 0 du nœud parent.

Exécution

Enregistrez ce fichier sous le nom removecurrentnode_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Nous obtenons le résultat suivant -

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

Exemple - Supprimer le nœud de texte

L'exemple suivant (removetextNode_example.htm) analyse un document XML ( node.xml ) dans un objet XML DOM et supprime le nœud enfant spécifié <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>

Dans l'exemple ci-dessus -

  • x = xmlDoc.getElementsByTagName ("FirstName") [0]; - obtient le premier élément <FirstName> au x indexé à 0.

  • y = x.childNodes [0]; - dans cette ligne, y contient le nœud enfant à supprimer.

  • x.removeChild (y); - supprime le nœud enfant spécifié.

Exécution

Enregistrez ce fichier sous le nom removetextNode_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Nous obtenons le résultat suivant -

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

removeAttribute ()

La méthode removeAttribute () supprime un attribut d'un élément par son nom.

Syntaxe

La syntaxe pour utiliser removeAttribute () est la suivante -

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

Où,

  • nom - est le nom de l'attribut à supprimer.

Exemple

L'exemple suivant (removeelementattribute_example.htm) analyse un document XML ( node.xml ) dans un objet DOM XML et supprime le nœud d'attribut spécifié.

<!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>

Dans l'exemple ci-dessus -

  • document.write (x [1] .getAttribute ('catégorie')); - la valeur de la catégorie d' attribut indexée en 1ère position est invoquée.

  • x [1] .removeAttribute ('catégorie'); - supprime la valeur d'attribut.

Exécution

Enregistrez ce fichier sous le nom removeelementattribute_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Nous obtenons le résultat suivant -

Non-Technical
null