XML DOM – Fortgeschritten XML DOM – Fortgeschritten Zu Beginn dieses Tutorials haben wir das XML DOM eingeführt und die Methode getElementsByTagName() des XML DOM verwendet, um Daten aus einem XML-Dokument abzurufen. In diesem Kapitel werden wir einige andere wichtige XML-DOM-Methoden kombinieren. Weitere Informationen zu XML DOM finden Sie in unserem XML DOM-Tutorial. Rufen Sie den Wert des Elements in der XML-Datei ab, die im folgenden Beispiel verwendet wird: Books.xml. Das folgende Beispiel ruft den Textwert des ersten <title>-Elements ab: Beispiel
txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
Probieren Sie es aus »
Das folgende Beispiel ruft den Textwert des „lang“-Attributs des ersten <title>-Elements ab:
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");
Probieren Sie es aus »
Das folgende Beispiel ändert den Textwert des ersten <title>-Elements:
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Easy Cooking";
Probieren Sie es aus »
Die setAttribute()-Methode des XML-DOM kann verwendet werden, um den Wert eines vorhandenen Attributs zu ändern oder ein neues Attribut zu erstellen.
Das folgende Beispiel erstellt ein neues Attribut (edition="first") und fügt es jedem <book>-Element hinzu:
x=xmlDoc.getElementsByTagName("book");for(i=0;i<x.length;i++){x[i].setAttribute("edition","first");}
Probieren Sie es aus »
Die Methode createElement() des XML-DOM erstellt einen neuen Elementknoten.
Die Methode createTextNode() des XML-DOM erstellt einen neuen Textknoten.
Die appendChild()-Methode des XML-DOM fügt einem Knoten einen untergeordneten Knoten hinzu (nach dem letzten untergeordneten Knoten).
Um ein neues Element mit Textinhalt zu erstellen, erstellen Sie gleichzeitig einen neuen Elementknoten und einen neuen Textknoten und hängen Sie ihn dann an den vorhandenen Knoten an.
Das folgende Beispiel erstellt ein neues Element (<edition>) mit dem folgenden Text: First und fügt es dann dem ersten <book>-Element hinzu:
newel=xmlDoc.createElement("edition");newtext=xmlDoc.createTextNode("First");newel.appendChild(newtext);x=xmlDoc.getElementsByTagName("book");x[0].appendChild(newel);
Probieren Sie es aus »
Beispielerklärung
Erstellen Sie ein <edition>-Element
Erstellen Sie einen Textknoten mit dem Wert „First“
Hängen Sie diesen Textknoten an das neue <edition>-Element an
Hängen Sie das <edition>-Element an das erste <book>-Element an
Das folgende Beispiel löscht den ersten Knoten des ersten <book>-Elements:
x=xmlDoc.getElementsByTagName("book")[0];x.removeChild(x.childNodes[0]);
Probieren Sie es aus »
Hinweis: Die Ergebnisse des obigen Beispiels können je nach verwendetem Browser variieren. Firefox behandelt Zeilenumbrüche als leere Textknoten, Internet Explorer jedoch nicht. Weitere Informationen zu diesem Problem und wie Sie es vermeiden können, finden Sie in unserem XML-DOM-Tutorial.