Rob*_*roj 3 c# collections foreach html-agility-pack
我正在使用HTML Agility Pack从w网页获取网址.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));
}
Run Code Online (Sandbox Code Playgroud)
但是,当我改变HtmlNodeCollection
来获取方含div
同class="row'
和想获取网址我得到总是第一个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));
}
Run Code Online (Sandbox Code Playgroud)
我用这段代码玩了一下,有一段时间我觉得我工作了.但现在我无法使用第二个代码片段选择我想要的所有URL.你能帮我吗?
shr*_*iek 12
你必须添加一个点"." 到XPath,否则它将从Document的开头匹配而不是在节点内.
只需将第二个字符串更改为".//div[@class='name']/a"
它就可以了
归档时间: |
|
查看次数: |
3787 次 |
最近记录: |