XML DOM - Knoten erstellen

In diesem Kapitel wird erläutert, wie Sie mit einigen Methoden des Dokumentobjekts neue Knoten erstellen. Diese Methoden bieten einen Bereich zum Erstellen eines neuen Elementknotens, Textknotens, Kommentarknotens, CDATA-Abschnittsknotens und Attributknotens . Wenn der neu erstellte Knoten bereits im Elementobjekt vorhanden ist, wird er durch den neuen ersetzt. Die folgenden Abschnitte veranschaulichen dies anhand von Beispielen.

Erstellen Sie neue Element - Knoten

Die Methode createElement () erstellt einen neuen Elementknoten. Wenn der neu erstellte Elementknoten im Elementobjekt vorhanden ist, wird er durch den neuen ersetzt.

Syntax

Die Syntax zur Verwendung der Methode createElement () lautet wie folgt:

var_name = xmldoc.createElement("tagname");

Wo,

  • var_name - ist der benutzerdefinierte Variablenname, der den Namen des neuen Elements enthält.

  • ("Tagname") - ist der Name des neuen Elementknotens, der erstellt werden soll.

Beispiel

Im folgenden Beispiel (createnewelement_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und ein neuer Elementknoten PhoneNo im XML-Dokument erstellt.

<!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");

         new_element = xmlDoc.createElement("PhoneNo");

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

         document.write(x.getElementsByTagName("PhoneNo")[0].nodeName);
      </script>
   </body>
</html>
  • new_element = xmlDoc.createElement ("PhoneNo"); Erstellt den neuen Elementknoten <PhoneNo>

  • x.appendChild (new_element); x enthält den Namen des angegebenen untergeordneten Knotens <ErsterName>, an den der neue Elementknoten angehängt wird.

Ausführung

Speichern Sie diese Datei als createnewelement_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server im selben Pfad befinden). In der Ausgabe erhalten wir den Attributwert als PhoneNo .

Erstellen neuer Textknoten

Die Methode createTextNode () erstellt einen neuen Textknoten .

Syntax

Die Syntax zur Verwendung von createTextNode () lautet wie folgt:

var_name = xmldoc.createTextNode("tagname");

Wo,

  • var_name - Dies ist der benutzerdefinierte Variablenname, der den Namen des neuen Textknotens enthält .

  • ("Tagname") - In der Klammer steht der Name des neuen zu erstellenden Textknotens .

Beispiel

Im folgenden Beispiel (createtextnode_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und ein neuer Textknoten erstellt. Im neuen Textknoten im XML-Dokument.

<!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");

         create_e = xmlDoc.createElement("PhoneNo");
         create_t = xmlDoc.createTextNode("Im new text node");
         create_e.appendChild(create_t);

         x = xmlDoc.getElementsByTagName("Employee")[0];
         x.appendChild(create_e);


         document.write(" PhoneNO: ");
         document.write(x.getElementsByTagName("PhoneNo")[0].childNodes[0].nodeValue);
      </script>
    </body>
</html>

Details des obigen Codes sind wie folgt -

  • create_e = xmlDoc.createElement ("PhoneNo"); erstellt ein neues Element < Telefonnummer >.

  • create_t = xmlDoc.createTextNode ("Im neuen Textknoten"); erstellt einen neuen Textknoten "Im neuen Textknoten" .

  • x.appendChild (create_e); Der Textknoten "Im neuen Textknoten " wird an das Element < Telefonnummer > angehängt .

  • document.write (x.getElementsByTagName ("PhoneNo") [0] .childNodes [0] .nodeValue); schreibt den neuen Textknotenwert in das Element <PhoneNo>.

Ausführung

Speichern Sie diese Datei als createtextnode_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server im selben Pfad befinden). In der Ausgabe erhalten wir den Attributwert als PhoneNO: Im neuen Textknoten .

Erstellen neuer Kommentar Knoten

Die Methode createComment () erstellt einen neuen Kommentarknoten. Der Kommentarknoten ist im Programm enthalten, um das Verständnis der Codefunktionalität zu erleichtern.

Syntax

Die Syntax zur Verwendung von createComment () lautet wie folgt:

var_name = xmldoc.createComment("tagname");

Wo,

  • var_name - ist der benutzerdefinierte Variablenname, der den Namen des neuen Kommentarknotens enthält.

  • ("Tagname") - ist der Name des neu zu erstellenden Kommentarknotens.

Beispiel

Im folgenden Beispiel (createcommentnode_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und ein neuer Kommentarknoten "Firma ist der übergeordnete Knoten" im XML-Dokument erstellt.

<!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");

         create_comment = xmlDoc.createComment("Company is the parent node");

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

         x.appendChild(create_comment);

         document.write(x.lastChild.nodeValue);
      </script>
   </body>
</html>

Im obigen Beispiel -

  • create_comment = xmlDoc.createComment ("Firma ist der übergeordnete Knoten") creates a specified comment line.

  • x.appendChild (create_comment) In dieser Zeile enthält 'x' den Namen des Elements <Unternehmen>, an das die Kommentarzeile angehängt wird.

Ausführung

Speichern Sie diese Datei als createcommentnode_example.htm im Serverpfad (diese Datei und die node.xml sollten sich auf Ihrem Server im selben Pfad befinden). In der Ausgabe erhalten wir den Attributwert, da Company der übergeordnete Knoten ist .

Erstellen neuer CDATA Abschnitt Knoten

Die Methode createCDATASection () erstellt einen neuen CDATA-Abschnittsknoten. Wenn der neu erstellte CDATA-Abschnittsknoten im Elementobjekt vorhanden ist, wird er durch den neuen ersetzt.

Syntax

Die Syntax zur Verwendung von createCDATASection () lautet wie folgt:

var_name = xmldoc.createCDATASection("tagname");

Wo,

  • var_name - ist der benutzerdefinierte Variablenname, der den Namen des neuen CDATA-Abschnittsknotens enthält.

  • ("Tagname") - ist der Name des neuen CDATA-Abschnittsknotens, der erstellt werden soll.

Beispiel

Im folgenden Beispiel (createcdatanode_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und ein neuer CDATA-Abschnittsknoten "CDATA-Beispiel erstellen" im XML-Dokument erstellt.

<!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");

         create_CDATA = xmlDoc.createCDATASection("Create CDATA Example");

         x = xmlDoc.getElementsByTagName("Employee")[0];
         x.appendChild(create_CDATA);
         document.write(x.lastChild.nodeValue);
      </script>
   </body>
</html>

Im obigen Beispiel -

  • create_CDATA = xmlDoc.createCDATASection ("CDATA-Beispiel erstellen") erstellt einen neuen CDATA-Abschnittsknoten, "CDATA-Beispiel erstellen".

  • x.appendChild (create_CDATA) hier enthält x das angegebene Element <Employee>, das auf 0 indiziert ist und an das der CDATA-Knotenwert angehängt wird.

Ausführung

Speichern Sie diese Datei als createcdatanode_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server auf demselben Pfad befinden). In der Ausgabe erhalten wir den Attributwert als CDATA-Beispiel erstellen .

Erstellen neuer Attributknoten

Um einen neuen Attributknoten zu erstellen, wird die Methode setAttributeNode () verwendet. Wenn der neu erstellte Attributknoten im Elementobjekt vorhanden ist, wird er durch den neuen ersetzt.

Syntax

Die Syntax zur Verwendung der Methode createElement () lautet wie folgt:

var_name = xmldoc.createAttribute("tagname");

Wo,

  • var_name - ist der benutzerdefinierte Variablenname, der den Namen des neuen Attributknotens enthält.

  • ("Tagname") - ist der Name des neuen Attributknotens, der erstellt werden soll.

Beispiel

Der folgende Beispiel (createattributenode_example.htm) parst ein XML - Dokument ( node.xml ) in ein XML - DOM - Objekt und erzeugt einen neuen Attributknoten Abschnitt in dem XML - Dokument.

<!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");

         create_a = xmlDoc.createAttribute("section");
         create_a.nodeValue = "A";

         x = xmlDoc.getElementsByTagName("Employee");
         x[0].setAttributeNode(create_a);
         document.write("New Attribute: ");
         document.write(x[0].getAttribute("section"));

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

Im obigen Beispiel -

  • create_a = xmlDoc.createAttribute ("Kategorie") erstellt ein Attribut mit dem Namen <Abschnitt>.

  • create_a.nodeValue = "Management" erstellt den Wert "A" für das Attribut <Abschnitt>.

  • x [0] .setAttributeNode (create_a) Dieser Attributwert wird auf das bei 0 indizierte Knotenelement <Mitarbeiter> gesetzt.