XML DOM-Knoten löschen

removeChild() 该方法删除指定的节点。

removeAttribute() 该方法删除指定的属性。

删除元素节点

removeChild() 该方法删除指定的节点。

当一个节点被删除时,它的所有子节点也将被删除。

此代码将从已加载的 xml 中删除第一个 <book> 元素:

Beispiel

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

Try It Yourself

Example Explanation:

  1. Assume books.xml has been loaded into xmlDoc in
  2. Setzen der Variablen y Setzen des zu entfernenden Elementknotens
  3. Use removeChild() 该方法从父节点中删除该元素节点

删除自身 - 删除当前节点

removeChild() 这是唯一可以删除指定节点的方法。

当您导航到要删除的节点时,可以使用: parentNode Attribute und removeChild() 用于删除该节点的方法:

Beispiel

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

Try It Yourself

Example Explanation:

  1. Assume books.xml has been loaded into xmlDoc in
  2. Setzen der Variablen y Setzen des zu entfernenden Elementknotens
  3. Use parentNode Attribute und removeChild() Methode, um Elementknoten zu löschen

Löschen von Textknoten

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

Beispiel

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

Try It Yourself

Example Explanation:

  1. Assume books.xml has been loaded into xmlDoc in
  2. Setzen der Variablen x auf den ersten title-Elementknoten
  3. Setzen der Variablen y Setzen des zu entfernenden Textknotens
  4. Use removeChild() Methode, um den Knoten aus dem Elternknoten zu entfernen

Nur removeChild() Der Fall, in dem Text aus einem Knoten entfernt wird, ist nicht häufig. Man kann das Attribut nodeValue verwenden. Siehe nächstes Kapitel.

Leeren des Textknotens

nodeValue Das Attribut kann verwendet werden, um den Wert des Textknotens zu ändern oder zu leeren:

Beispiel

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

Try It Yourself

Example Explanation:

  1. Assume books.xml has been loaded into xmlDoc in
  2. Erhalt des ersten title-Elements und des ersten Kindknotens
  3. Use nodeValue Attribute, um den Textknoten zu bereinigen

Entfernung von Attributknoten basierend auf dem Namen

removeAttribute() Die Methode wird verwendet, um ein Attribut basierend auf dem Namen zu entfernen.

Beispiel 1

Das folgende Codezeilen entfernen das "category"-Attribut des ersten <book>-Elements:

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

Try It Yourself

Example Explanation:

  1. Assume books.xml has been loaded into xmlDoc in
  2. Use getElementsByTagName() Um den book-Knoten zu erhalten
  3. Entfernung des "category"-Attributs aus dem ersten book-Elementknoten

Beispiel 2

Durchlauf und Entfernung aller "category"-Attribute der <book>-Elemente:

for (i = 0; i < xLen; i++) {
    y = x.item(i);
    y.removeAttribute('category');
}

Try It Yourself

Entfernung von Attributknoten basierend auf dem Objekt

removeAttributeNode() Der Methodenaufruf verwendet einen Node-Objekt als Parameter, um ein Attribut zu entfernen.

Das folgende Codezeilen entfernen alle Attribute der <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);
    }
}

Try It Yourself

Example Explanation:

  1. Assume books.xml has been loaded into xmlDoc in
  2. Use getElementsByTagName() To get all book nodes
  3. Check if each book element has an attribute
  4. If there is an attribute in a book element, then delete that attribute