C# XMLNodeList的UWP-XDocument等价物
如果我有一个XMLDocument,并且想计算一个节点的结果数,那么我会使用C# XMLNodeList的UWP-XDocument等价物,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,如果我有一个XMLDocument,并且想计算一个节点的结果数,那么我会使用 //XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item"); //if (CountResultsReturned.Count > 1) //{} 我想知道如何使用XDocument来实现这样的效果。LINQ to XML中没有一个特定的类与XmlNodeList等效,因为LINQ
//XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item");
//if (CountResultsReturned.Count > 1)
//{}
我想知道如何使用XDocument来实现这样的效果。LINQ to XML中没有一个特定的类与XmlNodeList等效,因为LINQ to XML只处理节点序列
IEnumerable
或元素序列IEnumerable
。当您选择一些节点时,它只会一个接一个地生成匹配的节点。如果愿意,可以将序列存储到列表或其他集合。例如
var items = xdoc.Root.Elements("item").ToList();
对于您的代码,只需选择元素并使用LINQAny()
方法检查是否存在任何元素:
xdoc.Root.Elements("item").Any()
// items.Any()
您还可以使用Count()
获取元素数。当然,XPath也可用
xdoc.XPathSelectElements("root/item").Count()
// items.Count
LINQtoXML中没有与XmlNodeList等效的特定类,因为LINQtoXML只处理节点序列
IEnumerable
或元素序列IEnumerable
。当您选择一些节点时,它只会一个接一个地生成匹配的节点。如果愿意,可以将序列存储到列表或其他集合。例如
var items = xdoc.Root.Elements("item").ToList();
对于您的代码,只需选择元素并使用LINQAny()
方法检查是否存在任何元素:
xdoc.Root.Elements("item").Any()
// items.Any()
您还可以使用Count()
获取元素数。当然,XPath也可用
xdoc.XPathSelectElements("root/item").Count()
// items.Count
我正在尝试将我的应用程序转换为UWP,但它确实不喜欢我目前拥有的XML,我觉得我应该多阅读一些XDocuments。使用您的代码似乎是在做我想做的事情,因此,谢谢您,我会将此标记为答案。@TLCONE LINQ to XML是一个不错的选择。我建议您阅读一些教程和/或使用LINQPad进行尝试。有一个示例选项卡,您可以在其中找到C#6 LINQ到XML教程。我正在尝试将我的应用程序转换为UWP,但它确实不喜欢我当前拥有的XML,我觉得我应该多读一些XDocuments。使用您的代码似乎是在做我想做的事情,因此,谢谢您,我会将此标记为答案。@TLCONE LINQ to XML是一个不错的选择。我建议您阅读一些教程和/或使用LINQPad进行尝试。在“示例”选项卡中,您可以找到C#6 LINQ to XML教程