XML DOM Knoten löschen


Die Methode removeChild() löscht den angegebenen Knoten.

Die Methode removeAttribute() löscht das angegebene Attribut.


实例

Probieren Sie es selbst - Beispiel

Das folgende Beispiel verwendet eine XML-Datei。
FunktionloadXMLDoc(), die sich in externem JavaScript befindet und zum Laden der XML-Datei verwendet wird.


Dieses Beispiel verwendet removeChild(), um das erste <book>-Element zu löschen.


Dieses Beispiel verwendet parentNode und removeChild(), um das aktuelle <book>-Element zu löschen.


Dieses Beispiel verwendet removeChild(), um den Textknoten des ersten <title>-Elements zu löschen.


Dieses Beispiel verwendet die Eigenschaft nodeValue(), um den Textknoten des ersten <title>-Elements zu leeren.


Dieses Beispiel verwendet removeAttribute(), um das Attribut "category" aus dem ersten <book>-Element zu löschen.


Dieses Beispiel verwendet removeAttributeNode(), um alle Attribute aus allen <book>-Elementen zu löschen.


Elementknoten löschen

Die Methode removeChild() löscht den angegebenen Knoten.

Wenn ein Knoten gelöscht wird, werden auch alle seine untergeordneten Knoten gelöscht.

Das folgende Codefragment löscht das erste <book>-Element aus dem geladenen XML:

Beispiel

xmlDoc=loadXMLDoc("books.xml");

y=xmlDoc.getElementsByTagName("book")[0];

xmlDoc.documentElement.removeChild(y);

Selbst ausprobieren »

Beispielerklärung:

  1. VerwendungloadXMLDoc()"" in xmlDoc laden
  2. Weisen Sie der Variablen y den zu löschenden Elementknoten zu.
  3. Löschen Sie den Elementknoten mithilfe der Methode removeChild() aus dem übergeordneten Knoten.

Sich selbst löschen - den aktuellen Knoten löschen

Die Methode removeChild() ist die einzige Methode, die einen angegebenen Knoten löschen kann.

Wenn Sie zu dem Knoten navigiert sind, den Sie löschen müssen, können Sie diesen Knoten mithilfe der parentNode-Eigenschaft und der Methode removeChild() löschen:

Beispiel

xmlDoc=loadXMLDoc("books.xml");

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

x.parentNode.removeChild(x);

Selbst ausprobieren »

Beispielerklärung:

  1. VerwendungloadXMLDoc()"" in xmlDoc laden
  2. Weisen Sie der Variablen y den zu löschenden Elementknoten zu.
  3. Löschen Sie diesen Elementknoten mithilfe der parentNode-Eigenschaft und der removeChild()-Methode.

Textknoten löschen

Die removeChild()-Methode kann verwendet werden, um Textknoten zu löschen:

Beispiel

xmlDoc=loadXMLDoc("books.xml");

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

y=x.childNodes[0];
x.removeChild(y);

Selbst ausprobieren »

Beispielerklärung:

  1. VerwendungloadXMLDoc()"" in xmlDoc laden
  2. Setzen Sie die Variable x auf den ersten title-Elementknoten.
  3. Setzen Sie die Variable y auf den Textknoten, der gelöscht werden soll.
  4. Löschen Sie den Elementknoten mithilfe der Methode removeChild() aus dem übergeordneten Knoten.

Es ist nicht üblich, removeChild() zu verwenden, um Text aus einem Knoten zu löschen. Stattdessen können Sie die nodeValue-Eigenschaft verwenden. Siehe den nächsten Abschnitt.


Textknoten leeren

Die nodeValue-Eigenschaft kann verwendet werden, um den Wert eines Textknotens zu ändern oder zu leeren:

Beispiel

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="";

Selbst ausprobieren »

Beispielerklärung:

  1. VerwendungloadXMLDoc()"" in xmlDoc laden
  2. Setzen Sie die Variable x auf den Textknoten des ersten title-Elements.
  3. Verwenden Sie die nodeValue-Eigenschaft, um den Text des Textknotens zu leeren.

Durchlaufen Sie alle <title>-Elemente und ändern Sie deren Textknoten:


Attributknoten nach Namen löschen

removeAttribute(name) wird verwendet, um einen Attributknoten nach Namen zu löschen.

Beispiel: removeAttribute('category')

Das folgende Code-Snippet löscht das Attribut "category" aus dem ersten <book>-Element:

Beispiel

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");

Selbst ausprobieren »

Beispielerklärung:

  1. VerwendungloadXMLDoc()"" in xmlDoc laden
  2. Verwenden Sie getElementsByTagName(), um book-Knoten abzurufen
  3. Löschen Sie das Attribut "category" aus dem ersten book-Elementknoten.

Durchlaufen Sie alle <book>-Elemente und löschen Sie das Attribut "category":


Attributknoten anhand eines Objekts löschen

removeAttributeNode(node) löscht einen Attributknoten, indem ein Knotenobjekt als Parameter verwendet wird.

Beispiel: removeAttributeNode(x)

Der folgende Codeausschnitt löscht alle Attribute aller <book>-Elemente:

Beispiel

xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book"); for (i=0;i<x.length;i++) { while (x[i].attributes.length>0) { attnode=x[i].attributes[0]; old_att=x[i].removeAttributeNode(attnode); } }

Selbst ausprobieren »

Beispielerklärung:

  1. VerwendungloadXMLDoc()"" in xmlDoc laden
  2. Verwenden Sie getElementsByTagName(), um alle book-Knoten abzurufen.
  3. Prüfen Sie, ob jedes book-Element Attribute hat.
  4. Wenn ein Attribut in einem book-Element existiert, löschen Sie dieses Attribut.

Weitere Erweiterungen