XML DOM Nodes Verwijderen

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

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

删除元素节点

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

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

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

Voorbeeld

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

Probeer het zelf

Voorbeeld uitleg:

  1. Aanneming books.xml is geladen naar xmlDoc in
  2. Stel de variabele y Zet de te verwijderen elementnode
  3. Gebruik removeChild() 方法从父节点中删除该元素节点

删除自己 - 删除当前节点

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

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

Voorbeeld

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

Probeer het zelf

Voorbeeld uitleg:

  1. Aanneming books.xml is geladen naar xmlDoc in
  2. Stel de variabele y Zet de te verwijderen elementnode
  3. Gebruik parentNode Eigenschappen en removeChild() De methode om elementnodes te verwijderen

Verwijder tekstnode

removeChild() De methode kan ook worden gebruikt om tekstnodes te verwijderen:

Voorbeeld

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

Probeer het zelf

Voorbeeld uitleg:

  1. Aanneming books.xml is geladen naar xmlDoc in
  2. Stel de variabele x In als de eerste title element node
  3. Stel de variabele y Zet de te verwijderen tekstnode
  4. Gebruik removeChild() De methode om een node van de oudernode te verwijderen

Gebruik alleen removeChild() Het verwijderen van tekst uit een node komt zelden voor. U kunt de nodeValue-eigenschap gebruiken in plaats van dat. Zie het volgende gedeelte.

Maak de tekstnode leeg

nodeValue Eigenschappen kunnen worden gebruikt om de waarde van de tekstnode te wijzigen of leeg te maken:

Voorbeeld

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

Probeer het zelf

Voorbeeld uitleg:

  1. Aanneming books.xml is geladen naar xmlDoc in
  2. Verkrijg de eerste title element node
  3. Gebruik nodeValue Eigenschappen om de tekstnode van de tekst te wissen

Verwijder attribuutnode op basis van naam

removeAttribute() De methode wordt gebruikt om een attribuutnode op basis van naam te verwijderen.

Voorbeeld 1

De volgende code verwijdert de "category" attribuut van het eerste <book> element:

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

Probeer het zelf

Voorbeeld uitleg:

  1. Aanneming books.xml is geladen naar xmlDoc in
  2. Gebruik getElementsByTagName() Om de book node te verkrijgen
  3. Verwijder de "category" attribuut van de eerste book element node

Voorbeeld 2

Herhaal en verwijder alle <book> elementen van de "category" attribuut:

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

Probeer het zelf

Verwijder attribuutnode op basis van object

removeAttributeNode() De methode gebruikt een Node-object als parameter om een attribuutnode te verwijderen.

De volgende code verwijdert alle <book> elementen van alle attributen:

Voorbeeld

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);
    }
}

Probeer het zelf

Voorbeeld uitleg:

  1. Aanneming books.xml is geladen naar xmlDoc in
  2. Gebruik getElementsByTagName() Om alle book-knooppunten te verkrijgen
  3. Controleer of elke book-element een eigenschap heeft
  4. Verwijder de eigenschap van een book-element indien aanwezig