DOM XML - Définir le nœud

Dans ce chapitre, nous étudierons comment modifier les valeurs des nœuds dans un objet DOM XML. La valeur du nœud peut être modifiée comme suit -

var value = node.nodeValue;

Si le nœud est un attribut, la variable de valeur sera la valeur de l'attribut; si le nœud est un nœud de texte, ce sera le contenu du texte; si le nœud est un élément, il sera nul .

Les sections suivantes montreront le paramètre de valeur de nœud pour chaque type de nœud (attribut, nœud de texte et élément).

Le node.xml utilisé dans tous les exemples suivants est comme ci-dessous -

<Company>
   <Employee category = "Technical">
      <FirstName>Tanmay</FirstName>
      <LastName>Patil</LastName>
      <ContactNo>1234567890</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
   
   <Employee category = "Non-Technical">
      <FirstName>Taniya</FirstName>
      <LastName>Mishra</LastName>
      <ContactNo>1234667898</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
   
   <Employee category = "Management">
      <FirstName>Tanisha</FirstName>
      <LastName>Sharma</LastName>
      <ContactNo>1234562350</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
</Company>

Modifier la valeur du nœud de texte

Lorsque nous disons la valeur de changement de l'élément Node, nous entendons modifier le contenu textuel d'un élément (qui est également appelé le nœud de texte ). L'exemple suivant montre comment modifier le nœud de texte d'un élément.

Exemple

L'exemple suivant (set_text_node_example.htm) analyse un document XML ( node.xml ) dans un objet XML DOM et modifie la valeur du nœud de texte d'un élément. Dans ce cas, envoyez un e - mail à chaque employé à [email protected] et imprimez les valeurs.

<!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("Email");
         for(i = 0;i<x.length;i++) {	
	
            x[i].childNodes[0].nodeValue = "[email protected]";
            document.write(i+');
            document.write(x[i].childNodes[0].nodeValue);
            document.write('<br>');
         }
	
      </script>
   </body>
</html>

Exécution

Enregistrez ce fichier sous set_text_node_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Vous recevrez la sortie suivante -

0) [email protected]
1) [email protected]
2) [email protected]

Modifier la valeur du nœud d'attribut

L'exemple suivant montre comment modifier le nœud d'attribut d'un élément.

Exemple

L'exemple suivant (set_attribute_example.htm) analyse un document XML ( node.xml ) dans un objet XML DOM et modifie la valeur du nœud d'attribut d'un élément. Dans ce cas, la catégorie de chaque employé à admin-0, admin-1, admin-2 respectivement et imprime les valeurs.

<!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");
         for(i = 0 ;i<x.length;i++){	
	
            newcategory = x[i].getAttributeNode('category');
            newcategory.nodeValue = "admin-"+i;
            document.write(i+');
            document.write(x[i].getAttributeNode('category').nodeValue);
            document.write('<br>');
         }
	
      </script>
   </body>
</html>

Exécution

Enregistrez ce fichier sous set_node_attribute_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Le résultat serait comme ci-dessous -

0) admin-0
1) admin-1
2) admin-2