HtmlAgilityPack - 选择多个节点

时间:2014-08-23 18:31:48

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

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

我正在寻找类似的Linq查询,我可以根据节点的类名选择多个节点。在简单英语中,我希望将HtmlNodeCollection中的所有节点存储在节点以div开头且class的{​​{1}}为XXX的位置。

1 个答案:

答案 0 :(得分:3)

从你的句子翻译成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,但这并不重要恕我直言。