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