XML DOM - Knoten festlegen

In diesem Kapitel erfahren Sie, wie Sie die Werte von Knoten in einem XML-DOM-Objekt ändern. Der Knotenwert kann wie folgt geändert werden:

var value = node.nodeValue;

Wenn der Knoten ein Attribut ist, ist die Wertvariable der Wert des Attributs. Wenn der Knoten ein Textknoten ist , ist dies der Textinhalt. Wenn der Knoten ein Element ist, ist er null .

In den folgenden Abschnitten wird die Einstellung des Knotenwerts für jeden Knotentyp (Attribut, Textknoten und Element) veranschaulicht.

Die in allen folgenden Beispielen verwendete node.xml lautet wie folgt:

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

Ändern Sie den Wert des Textknotens

Wenn wir den Änderungswert des Knotenelements sagen, meinen wir, den Textinhalt eines Elements (das auch als Textknoten bezeichnet wird ) zu bearbeiten . Das folgende Beispiel zeigt, wie Sie den Textknoten eines Elements ändern.

Beispiel

Im folgenden Beispiel (set_text_node_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und der Wert des Textknotens eines Elements geändert. In diesem Fall senden Sie eine E-Mail jedes Mitarbeiters an [email protected] und drucken Sie die Werte aus.

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

Ausführung

Speichern Sie diese Datei als set_text_node_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server auf demselben Pfad befinden). Sie erhalten folgende Ausgabe:

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

Ändern Sie den Wert des Attributknotens

Das folgende Beispiel zeigt, wie Sie den Attributknoten eines Elements ändern.

Beispiel

Im folgenden Beispiel (set_attribute_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und der Wert des Attributknotens eines Elements geändert. In diesem Fall wird die Kategorie der einzelnen Mitarbeiter zu Admin-0, admin-1, admin-2 jeweils und die Werte drucken.

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

Ausführung

Speichern Sie diese Datei als set_node_attribute_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server auf demselben Pfad befinden). Das Ergebnis wäre wie folgt:

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