UWP - XDocument 等效于 XMLNodeList
UWP - XDocument Equivalent Of XMLNodeList
如果我有一个 XMLDocument 并且想计算一个节点的结果数,我会使用类似
的东西
//XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item");
//if (CountResultsReturned.Count > 1)
//{}
我想知道如何使用 XDocument 来实现这样的目标。
在 LINQ to XML 中没有特定的 class 等同于 XmlNodeList,因为 LINQ to XML 仅适用于节点序列 IEnumerable<XNode>
或节点序列元素 IEnumerable<XElement>
。当你 select 一些节点时,它只会一个接一个地产生匹配的节点。如果需要,您可以将序列存储到列表或其他集合中。例如
var items = xdoc.Root.Elements("item").ToList();
对于您的代码,只需 select 个元素并使用 LINQ Any()
方法检查是否存在任何元素:
xdoc.Root.Elements("item").Any()
// items.Any()
您也可以使用 Count()
来获取元素的数量。当然 XPath 也可用
xdoc.XPathSelectElements("root/item").Count()
// items.Count
如果我有一个 XMLDocument 并且想计算一个节点的结果数,我会使用类似
的东西 //XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item");
//if (CountResultsReturned.Count > 1)
//{}
我想知道如何使用 XDocument 来实现这样的目标。
在 LINQ to XML 中没有特定的 class 等同于 XmlNodeList,因为 LINQ to XML 仅适用于节点序列 IEnumerable<XNode>
或节点序列元素 IEnumerable<XElement>
。当你 select 一些节点时,它只会一个接一个地产生匹配的节点。如果需要,您可以将序列存储到列表或其他集合中。例如
var items = xdoc.Root.Elements("item").ToList();
对于您的代码,只需 select 个元素并使用 LINQ Any()
方法检查是否存在任何元素:
xdoc.Root.Elements("item").Any()
// items.Any()
您也可以使用 Count()
来获取元素的数量。当然 XPath 也可用
xdoc.XPathSelectElements("root/item").Count()
// items.Count