【问题标题】:UWP - XDocument Equivalent Of XMLNodeListUWP - XDocument 等效于 XMLNodeList
【发布时间】:2017-02-01 11:25:44
【问题描述】:

如果我有一个 XMLDocument 并且想计算一个节点的结果数,我会使用类似的东西

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

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

【问题讨论】:

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


    【解决方案1】:

    LINQ to XML 中没有等效于 XmlNodeList 的特定类,因为 LINQ to XML 仅适用于节点序列IEnumerable<XNode> 或元素序列IEnumerable<XElement>。当您选择一些节点时,它只会一一产生匹配的节点。如果需要,您可以将序列存储到列表或其他集合中。例如

    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
    

    【讨论】:

    • 我正在尝试将我的应用程序转换为 UWP,但它真的不喜欢我目前拥有的 XML,我觉得我可能应该多读一些 XDocuments。使用您的代码似乎正在做我想做的事,所以谢谢你,我会将此标记为答案。
    • @TLCONE LINQ to XML 是一个不错的选择。我建议您阅读一些教程和/或尝试使用 LINQ Pad。有 Samples 选项卡,您可以在其中找到 C# 6 LINQ to XML 教程
    猜你喜欢
    • 1970-01-01
    • 2016-10-24
    • 2020-07-05
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多