- 你所在位置:首页 〉VS.net〉XML〉XML基础教程〉XML基础教程:XML DOM 删除节点
- XML基础教程:XML DOM 删除节点
- 作者:佚名 文章来源:ttp://www.w3school.com.cn 发布日期:2008-03-06 浏览次数:446
-
- 打印这篇文章
-
XML DOM 删除节点
实例
在下面的例子中,我们将使用XML文件books.xml,以及JavaScript函数loadXMLDoc()。
- 删除元素
- 本例使用 removeChild()从载入的XML中删除最后一个< book>元素。
- 从文本节点删除文本
- 本例使用deleteData()从已载入的XML中的一个文本节点删除文本。
- 删除属性
- 本例使用removeAttribute()从已载入的XML中删除所有的"category"属性。
- 使用 removeAttributeNode()
- 本例使用removeAttributeNode()从已载入的XML中删除所有的"category"属性。
删除某个元素
removeChild()可被用来删除某个指定的节点。
下面的代码片段会从已载入的XML中删除最后一个< book>元素:
//check if last child node is an element node function get_lastchild(n) { var x=n.lastChild; while (x.nodeType!=1) { x=x.previousSibling; } return x; } xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.documentElement; x.removeChild(get_lastchild(x));注释:Internet Explorer会忽略节点之间产生的空白文本节点(例如换行字符),而Mozilla不会这样。因此,在上面的例子中,get_lastchild()函数会检查参数的最后一个子节点的节点类型。
元素节点的节点类型是1,因此假如参数中节点的最末子节点不是元素节点,那么它就会移至上一个节点,并检查此节点是否为元素节点。这个过程会持续到最后一个子节点被找到为止。通过这个办法,我们就可以在Internet Explorer 和 Mozilla中得到正确的结果了。
从元素删除文本
deleteData()方法被用来从文本节点删除数据。
deleteData()方法有两个参数:
- offset - 从何处开始删除字符。偏移量的起始值是0
- count - 删除多少字符
下面的代码片段会从已载入的XML中的首个< title>元素删除开头的九个字符:
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.deleteData(0,9);删除属性
removeAttribute()方法被用来删除属性节点。
下面的代码片段会删除每个< book>元素中所有的"category"属性:
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName('book'); for(i=0;i< x.length;i++) { x.item(i).removeAttribute('category'); }removeAttributeNode()
removeAttributeNode()方法被用来删除某个属性节点。
下面的代码片段会删除每个< book>元素中所有的"category"属性:
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName('book'); for(i=0;i< x.length;i++) { attnode=x.item(i).getAttributeNode("category") old_att=x.item(i).removeAttributeNode(attnode); document.write("Removed attribute: " + old_att.name + "< br />"); }输出:
Removed attribute: category Removed attribute: category Removed attribute: category Removed attribute: category
- 打印这篇文章
- 与本文主题相关的文章
-
- 返回首页
