如果我有一个XMLDocument并希望例如计算一个Node的结果数量,我将使用类似
的内容 //XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item");
//if (CountResultsReturned.Count > 1)
//{}
我想知道如何使用XDocument来实现这样的目标。
答案 0 :(得分:4)
LINQ to XML中没有特定的类,它等同于XmlNodeList,因为LINQ to XML只适用于节点序列IEnumerable<XNode>
或元素序列IEnumerable<XElement>
。当您选择一些节点时,它只是逐个产生匹配的节点。如果需要,您可以将序列存储到列表或其他集合中。 E.g
var items = xdoc.Root.Elements("item").ToList();
对于您的代码,只需选择元素并使用LINQ Any()
方法检查是否存在任何元素:
xdoc.Root.Elements("item").Any()
// items.Any()
您还可以使用Count()
来获取元素数量。当然XPath也可用
xdoc.XPathSelectElements("root/item").Count()
// items.Count