首页 > Windows开发 > 详细

使用C#从XML中批量删除指定节点

时间:2020-05-07 22:14:21      阅读:210      评论:0      收藏:0      [点我收藏+]

删除userId不为2000的所有term节点。

关于XPath语法可自行搜索学习。

Root已经是根节点grimoire了,所以不需要写在XPath中。

借助Linq的Where方法还可以做到更细粒度的过滤。

using System.Collections.Generic;
using System.Xml.Linq;
using System.Xml.XPath;

namespace ConsoleApp11
{
    class Program
    {
        static void Main(string[] args)
        {
            XElement Root = XElement.Load("foo.xml");

            IEnumerable<XElement> Selected = Root.XPathSelectElements("terms/term[userId!=2000]");
            Selected.Remove();

            Root.Save("foo-save.xml");
        }
    }
}

XML文档如下:

<grimoire>
  <terms>
    <term>
      <gameId>...</gameId>
      <userId>2000</userId>
      <language>...</language>
      <timestamp>...</timestamp>
      <pattern>...</pattern>
      <text>...</text>
    </term>
  <terms>
<grimoire>

 

使用C#从XML中批量删除指定节点

原文:https://www.cnblogs.com/crsky/p/12845752.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!