C#中如何删除XML文件中的某个节点

 我来答
李磊_1
2019-07-16 · TA获得超过299个赞
知道小有建树答主
回答量:337
采纳率:66%
帮助的人:119万
展开全部

假设有如下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);

运行之后文档变为:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式