【问题标题】:HtmlAgilityPack - Selecting Multiple NodesHtmlAgilityPack - 选择多个节点
【发布时间】:2014-08-23 18:31:48
【问题描述】:

由于windows phone 8.1 or WinRT 没有正式发布的HtmlAgilityPack,因此手动引用该dll 不允许调用SelectNodes() 函数,我可以将XPATH 作为参数传递。

我正在寻找一个类似的 Linq 查询,通过它我可以根据节点的类名选择多个节点。用简单的英语,我想将所有节点存储在HtmlNodeCollection 中,其中节点以div 开头,而classclass 是XXX。

【问题讨论】:

  • 到目前为止你尝试过什么?对我们来说,帮助修复现有代码比尝试重新编写代码要高效得多。

标签: linq html-agility-pack windows-phone-8.1


【解决方案1】:

从您的句子翻译成 HtmlAgilityPack 的 LINQ 表达式:

var result = doc.DocumentNode
                .Descendants()
                .Where(o => o.Name.StartsWith("div") 
                                && 
                            o.GetAttributeValue("class", "") == "XXX");

或者只是提到你只对<div> 节点感兴趣:

var result = doc.DocumentNode
                .Descendants("div")
                .Where(o => o.GetAttributeValue("class", "") == "XXX");

以上返回 IEnumerable<HtmlNode> 而不是 HtmlNodeCollection,但恕我直言,这并不重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2018-05-17
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多