XML-DOM -Entfernungsknoten
Die Methode removeChild() entfernt einen angegebenen Knoten.
Die Methode removeAttribute() entfernt ein angegebenes Attribut.
Probieren Sie es selbst aus - Beispiele
Die Beispiele verwenden die XML-Datei books.xml .
In diesem Beispiel wird removeChild() verwendet, um das erste <book>-Element zu entfernen.
Dieses Beispiel verwendet parentNode und removeChild(), um das aktuelle <book>-Element zu entfernen.
Textknotens In diesem Beispiel wird removeChild() verwendet, um den Textknoten aus dem ersten <title>-Element zu entfernen.
Textknotens löschen In diesem Beispiel wird die Eigenschaft nodeValue() verwendet, um den Textknoten des ersten <title>-Elements zu löschen.
In diesem Beispiel wird removeAttribute() verwendet, um das Attribut „category“ aus dem ersten <book>-Element zu entfernen.
Dieses Beispiel verwendet removeAttributeNode(), um alle Attribute aus allen <book>-Elementen zu entfernen.
Entfernen Sie einen Elementknoten
Die Methode removeChild() entfernt einen angegebenen Knoten.
Wenn ein Knoten entfernt wird, werden alle seine untergeordneten Knoten ebenfalls entfernt.
Dieser Code entfernt das erste <book>-Element aus dem geladenen XML:
Beispiel
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
Beispiel erklärt:
- Angenommen, " books.xml " wird in xmlDoc geladen
- Legen Sie die Variable y als den zu entfernenden Elementknoten fest
- Entfernen Sie den Elementknoten mithilfe der Methode removeChild() aus dem übergeordneten Knoten
Mich selbst entfernen - Entfernen Sie den aktuellen Knoten
Die Methode removeChild() ist die einzige Möglichkeit, einen bestimmten Knoten zu entfernen.
Wenn Sie zu dem Knoten navigiert sind, den Sie entfernen möchten, können Sie diesen Knoten mit der Eigenschaft parentNode und der Methode removeChild() entfernen:
Beispiel
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
Beispiel erklärt:
- Angenommen, " books.xml " wird in xmlDoc geladen
- Legen Sie die Variable y als den zu entfernenden Elementknoten fest
- Entfernen Sie den Elementknoten mithilfe der Eigenschaft parentNode und der Methode removeChild()
Entfernen Sie einen Textknoten
Die Methode removeChild() kann auch verwendet werden, um einen Textknoten zu entfernen:
Beispiel
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
Beispiel erklärt:
- Angenommen, " books.xml " wird in xmlDoc geladen
- Legen Sie die Variable x als ersten Titelelementknoten fest
- Legen Sie die Variable y als den zu entfernenden Textknoten fest
- Entfernen Sie den Elementknoten mithilfe der Methode removeChild() aus dem übergeordneten Knoten
Es ist nicht sehr üblich, removeChild() zu verwenden, nur um den Text von einem Knoten zu entfernen. Stattdessen kann die Eigenschaft nodeValue verwendet werden. Siehe nächster Absatz.
Löschen Sie einen Textknoten
Die Eigenschaft nodeValue kann verwendet werden, um den Wert eines Textknotens zu ändern:
Beispiel
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
Beispiel erklärt:
- Angenommen, " books.xml " wird in xmlDoc geladen
- Rufen Sie den ersten untergeordneten Knoten des ersten Titelelements ab.
- Verwenden Sie die nodeValue-Eigenschaft, um den Text aus dem Textknoten zu löschen
Entfernen Sie einen Attributknoten nach Namen
Die Methode removeAttribute( ) entfernt einen Attributknoten anhand seines Namens.
Beispiel: removeAttribute('category')
Dieser Code entfernt das „category“-Attribut im ersten <book>-Element:
Beispiel
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
Beispiel erklärt:
- Angenommen, " books.xml " wird in xmlDoc geladen
- Verwenden Sie getElementsByTagName(), um Buchknoten abzurufen
- Entfernen Sie das Attribut „Kategorie“ aus dem ersten Buchelementknoten
Durchlaufen und entfernen Sie das "category"-Attribut aller <book>-Elemente:
Attributknoten nach Objekt entfernen
Die Methode removeAttributeNode( ) entfernt einen Attributknoten unter Verwendung des Knotenobjekts als Parameter.
Beispiel: removeAttributeNode(x)
Dieser Code entfernt alle Attribute aller <book>-Elemente:
Beispiel
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);
}
}
Beispiel erklärt:
- Angenommen, " books.xml " wird in xmlDoc geladen
- Verwenden Sie getElementsByTagName(), um alle Buchknoten abzurufen
- Überprüfen Sie für jedes Buchelement, ob Attribute vorhanden sind
- Wenn ein Buchelement Attribute enthält, entfernen Sie das Attribut