在XML文档中搜索

Itz*_*had 1 c# xml visual-studio-2008 winforms

搜索XML文档以根据搜索条件检索一个或多个记录的最佳方法是什么.欢迎提出建议.

Jon*_*eet 6

就个人而言,如果可能,我会使用LINQ to XML.你的问题目前很模糊,但例如,你可以写:

XDocument doc = XDocument.Load("test.xml");
var matches = doc.Descendants("Person")
                 .Where(x => (string) x.Attribute("Name") == "Jon")
                 .Where(x => x.Elements("Child").Count() >= 2);
Run Code Online (Sandbox Code Playgroud)

虽然你可以使用XPath,但我通常不喜欢 - 它具有将一种语言嵌入另一种语言的所有常见问题,而使用LINQ to XML,你整个都在使用C#,所以你没有新的语法需要学习 - 只是相关的方法在LINQ to XML库中.

LINQ to XML还使命名空间处理变得简单,并且您不必担心转义值等,因为您的查询全部是代码而不是字符串.