UWP - XMLDodeList的XDocument等效项

时间:2017-02-01 11:25:45

标签: c# xml linq linq-to-xml

如果我有一个XMLDocument并希望例如计算一个Node的结果数量,我将使用类似

的内容
        //XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item");
        //if (CountResultsReturned.Count > 1)
        //{}

我想知道如何使用XDocument来实现这样的目标。

1 个答案:

答案 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