最新的Web开发教程
 

XML DOM删除节点


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

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


试一试 - 示例

这些例子使用XML文件的Books.xml

删除元素节点
本例使用removeChild()删除第一个<book>元素。

删除当前元素节点
本例使用parentNode和removeChild()删除当前的<book>元素。

删除文本节点
本例使用removeChild()删除从第一个文本节点<title>元素。

清除文本节点的文本
本例使用nodeValue()属性来清除前的文本节点<title>元素。

移除通过名称获得属性
本例使用removeAttribute()来删除"category"从第一属性<book>元素。

通过删除对象属性
本例使用removeAttributeNode()从所有删除所有属性<book>元素。

×


删除元素节点

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

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

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

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

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

例子解释:

  1. 假设“ 的books.xml ”载入xmlDoc中
  2. 设置变量y是元素节点删除
  3. 通过删除元素节点removeChild()方法从父节点

删除自己 - 删除当前节点

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

当你浏览到你想删除的节点,也可以使用parentNode属性和删除该节点removeChild()方法:

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

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

例子解释:

  1. 假设“ 的books.xml ”载入到xmlDoc中
  2. 设置变量y是元素节点删除
  3. 通过使用parentNode属性和删除元素节点removeChild()方法

删除文本节点

所述removeChild()方法也可以用于去除文本节点:

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

例子解释:

  1. 假设“ 的books.xml ”载入到xmlDoc中
  2. 设置变量x是第一个标题元素节点
  3. 设置变量y是文本节点删除
  4. 通过删除元素节点removeChild()方法从父节点

这是不是很常见使用removeChild()只是用来删除节点的文本。 nodeValue属性可以用来代替。 见下段。


清除文本节点

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

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

例子解释:

  1. 假设“ 的books.xml ”载入到xmlDoc中
  2. 拿到第一个冠军元素的第一个子节点。
  3. 使用nodeValue属性来清除从文本节点的文本

遍历和更改所有的文本节点<title>元素: 试一试


按名删除属性节点

removeAttribute()方法删除其名称的属性节点。

例如: removeAttribute('category')

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

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

例子解释:

  1. 假设“ 的books.xml ”载入到xmlDoc中
  2. 使用getElementsByTagName()来获取book节点
  3. 删除"category"属性形成第一本书元素节点

遍历并删除"category"的所有属性<book>元素: 试一试


根据对象删除属性节点

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

例如: 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. 假设“ 的books.xml ”载入到xmlDoc中
  2. 使用getElementsByTagName()来获取所有book节点
  3. 对于每个book元素检查是否有任何属性
  4. 虽然在一本书中的元素是属性,删除属性