XML DOM-radera noder

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

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

删除元素节点

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

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

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

Exempel

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. sätt variabeln y sätt till det elementnod som ska tas bort
  3. 使用 removeChild() 方法从父节点中删除该元素节点

删除自己 - 删除当前节点

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

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

Exempel

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. sätt variabeln y sätt till det elementnod som ska tas bort
  3. 使用 parentNode egenskapen och removeChild() metoden för att ta bort elementnoden

Ta bort textnoden

removeChild() Metoden kan också användas för att ta bort textnoden:

Exempel

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. sätt variabeln x sätt till den första title-elementnoden
  3. sätt variabeln y sätt till den textnod som ska tas bort
  4. 使用 removeChild() metoden för att ta bort noden från föräldern

Använd removeChild() Att ta bort text från en nod är inte särskilt vanligt. Använd nodeValue-egenskapen istället. Se nästa avsnitt.

Töm textnoden

nodeValue Egenskapen kan användas för att ändra eller tömma textnodens värde:

Exempel

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. Hämta den första title-elementets första undernod
  3. 使用 nodeValue Egenskapen kan användas för att ändra eller tömma textnodens värde

Ta bort attributnoden baserat på namn

removeAttribute() Metoden används för att ta bort attributnoden baserat på namn.

Exempel 1

Följande kod tar bort "category"-attributet från det första <book>-elementet:

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. 使用 getElementsByTagName() För att få tag på book-noden
  3. Ta bort "category"-attributet från den första book-elementnoden

Exempel 2

Loopa och ta bort "category"-attributet från alla <book>-element:

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

亲自试一试

Ta bort attributnoden baserat på objektet

removeAttributeNode() Metoden använder ett Node-objekt som parameter för att ta bort attributnoden.

Följande kod tar bort alla attribut från alla <book>-element:

Exempel

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

亲自试一试

例子解释:

  1. 假设 books.xml 已被加载到 xmlDoc
  2. 使用 getElementsByTagName() 来获取所有 book 节点
  3. 检查每个 book 元素是否有属性
  4. 如果在某个 book 元素中存在属性,则删除该属性