【发布时间】:2012-08-08 20:46:15
【问题描述】:
我使用 HTML Agility Pack 从网页中获取 URL。网址是:
如果我使用下面的代码,我会得到我想要的链接:
String html = getHtml("http://goo.gl/DqfQl");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
HtmlNodeCollection address_rows = doc.DocumentNode.SelectNodes("//div[@class='name']/a");
foreach (HtmlNode row in address_rows)
{
MessageBox.Show(row.GetAttributeValue("href",LINK_NOT_FOUND));
}
但是当我更改 HtmlNodeCollection 以使用 class="row' 获取包含 div 并且想要获取 URL 时,我总是得到第一个 URL。
HtmlNodeCollection address_rows = doc.DocumentNode.SelectNodes("//div[@class='row']");
foreach (HtmlNode element in address_rows) {
MessageBox.Show(element.SelectSingleNode("//div[@class='name']/a").GetAttributeValue("href",LINK_NOT_FOUND));
}
我用这段代码玩了一会儿,有一段时间我认为我工作了。但现在我不能使用第二个代码 sn-p 选择我想要的所有 URL。你能帮忙吗?
【问题讨论】:
标签: c# collections foreach html-agility-pack