目录

XML DOM 删除节点


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

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


删除元素节点

这个移除子对象()方法删除指定的节点。

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

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

示例

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

xmlDoc.documentElement.removeChild(y);
亲自试一试 »

示例解释:

  1. 认为书籍.xml被加载到 xmlDoc 中
  2. 将变量 y 设置为要删除的元素节点
  3. 使用removeChild()方法从父节点中删除元素节点


删除我自己 - 删除当前节点

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

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

示例

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

x.parentNode.removeChild(x);
亲自试一试 »

示例解释:

  1. 认为书籍.xml被加载到 xmlDoc 中
  2. 将变量 y 设置为要删除的元素节点
  3. 使用parentNode属性和removeChild()方法删除元素节点

删除文本节点

这个移除子对象()方法也可用于删除文本节点:

示例

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
亲自试一试 »

示例解释:

  1. 认为书籍.xml被加载到 xmlDoc 中
  2. 设置变量x为第一个标题元素节点
  3. 将变量 y 设置为要删除的文本节点
  4. 使用removeChild()方法从父节点中删除元素节点

仅使用removeChild()从节点中删除文本的情况并不常见。可以使用 nodeValue 属性来代替。请参阅下一段。


清除文本节点

这个节点值属性可用于更改文本节点的值:

示例

xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
亲自试一试 »

示例解释:

  1. 认为书籍.xml被加载到 xmlDoc 中
  2. 获取第一个标题元素的第一个子节点。
  3. 使用nodeValue属性清除文本节点中的文本

按名称删除属性节点

这个删除属性() 方法通过名称删除属性节点。

示例:removeAttribute('类别')

此代码删除第一个 <book> 元素中的 "category" 属性:

示例

x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
亲自试一试 »

示例解释:

  1. 认为书籍.xml被加载到 xmlDoc 中
  2. 使用 getElementsByTagName() 获取图书节点
  3. 从第一个 book 元素节点中删除 "category" 属性

循环并删除所有 <book> 元素的 "category" 属性:亲自试一试


按对象删除属性节点

这个删除属性节点() 方法删除属性节点,使用节点对象作为参数。

示例:removeAttributeNode(x)

此代码删除所有 <book> 元素的所有属性:

示例

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. 认为书籍.xml被加载到 xmlDoc 中
  2. 使用 getElementsByTagName() 获取所有书籍节点
  3. 对于每个 book 元素检查是否有任何属性
  4. 虽然 book 元素中有属性,但删除该属性