关于xml删除节点的问题
来源:互联网 发布:c语言趣味编程 编辑:程序博客网 时间:2024/06/05 05:04
前面文章中提到 xml节点的删除
“删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update陶维佳" ISBN="2-3631-4">节点。”
代码:
XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{
xe.RemoveAttribute("genre");//删除genre属性
}
else if(xe.GetAttribute("genre")=="update陶维佳")
{
xe.RemoveAll();//删除该节点的全部内容
}
}
xmlDoc.Save("bookstore.xml");
这样的删除将不彻底,xml会变成:
最后结果为:
<bookstore>
<book ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book>
</book>
</bookstore>
经过反复调试发现
要完整删除节点 也就是 说, 得通过 该节点的父节点 来删除. 也就是 你要 select 到 < bookstore > 这个节点 再用 这个节点 来 删除 < book > 即可.
代码
XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{
xe.RemoveAttribute("genre");//删除genre属性
}
else if(xe.GetAttribute("genre")=="update陶维佳")
{
xe.ParentNode.RemoveChild(xe);;//删除该节点的全部内容
}
}
xmlDoc.Save("bookstore.xml");
即可解决该问题 让xml文件变为
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
</bookstore>
- 关于xml删除节点的问题
- xml节点的删除出错
- AS3 的XML删除节点
- 删除指定的XML节点
- 批量删除XML节点失败的解决办法
- 批量删除XML节点失败的解决办法
- C# 删除指定的XML节点
- C# 删除指定的XML节点
- 关于利用Schema解析XML,生成、编辑XML的节点问题
- 删除XML节点
- 删除xml某节点
- php xml删除节点
- 关于XML的DOM的节点操作
- 关于i节点的问题
- 关于设备节点的问题
- 关于ros的节点问题
- 关于树节点的问题
- 关于java写二叉排序树的问题,实现各种节点的插入,删除,遍历
- OpenGL的Bezier样条曲线函数
- gentoo slim启动关闭num lk
- 【转】asp.net 客户端回调通知
- 战争磨盘十二:身在曹营
- js执行回调函数,执行成功后执行另外程序
- 关于xml删除节点的问题
- C/C++数组名与指针区别深入探索
- Delphi 中 断言 Assert 用法
- Java常用方法大全--不断更新中。。。
- 开发WebService两种开源工具CXF和 Axis2的比较
- JS闭包深入详解
- menuconfig Linux Error: curses.h: No such file or directory Problem Solution
- Linux文件系统的缓存机制
- 设立数据表中的主键