C#中如何删除XML文件中的某个节点
1个回答
展开全部
假设有如下XML文件:
<?xml version="1.0" encoding="utf-8"?>
<books>
<book name="失踪的孩子" isbn="9787020139927" author="[意] 埃莱娜·费兰特 "/>
<book name="我要快乐,不必正常" isbn="9787559614988" author=" [英] 珍妮特·温特森 "/>
</books>
如下代码可移除name为"我要快乐,不必正常"的节点:
string filePath = "D:\\XMLFile1.xml";
// 创建一个 XML 文档对象
XmlDocument document = new XmlDocument();
// 加载文档
document.Load(filePath);
// 获取所有 book 节点
XmlNodeList nodes = document.GetElementsByTagName("book");
// 遍历节点,如果节点的 name 属性为 "我要快乐,不必正常" ,则从父节点中删除
// 这里之所以从后向前遍历,是为了处理删除节点之后节点集合变化的问题
for (int i = nodes.Count - 1; i >= 0; i--)
{
XmlNode node = nodes[i];
if (node.Attributes["name"] != null
&& node.Attributes["name"].Value == "我要快乐,不必正常")
{
node.ParentNode.RemoveChild(node);
}
}
// 删除节点之后,保存文档;
document.Save(filePath);
运行之后文档变为:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询