使用html敏捷包获取'.name a'?

时间:2010-08-08 22:37:21

标签: html-agility-pack

当我的父类是name_of_box时,我试图获取链接的所有链接。我写了下面但没有得到什么。我该怎么做呢?用css我相信我可以用.name_of_box a

选择它
var ls = htmldoc.DocumentNode.Elements("//div[@class='name_of_box']//a[@href]");

2 个答案:

答案 0 :(得分:0)

HtmlAgilityPack无法直接查询属性值。您必须遍历锚节点列表。这是一种方式:

var ls = new List<string>(); 
var nodes = htmldoc.DocumentNode.SelectNodes("//div[@class='name_of_box']//a");
nodes.ToList().ForEach(a => ls.Add(a.GetAttributeValue("href", "")));

但是您可以查看experimental build,这样您就可以直接查询属性了。

答案 1 :(得分:0)

可以使用fizzler轻松完成 - 一个.NET库,可以根据CSS选择器从节点树中选择项目。默认实现基于HTMLAgilityPack并从HTML文档中选择。

请参阅:

var ls = htmldoc.DocumentNode.QuerySelectorAll(".name_of_box a");