使用C#從XML中批量刪除指定節點


刪除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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM