我正在写一个小型的下载 - 机器人,就是在自己的下层搜索链接。
我需要找到的是html-Page中的所有链接(.jpg文件的链接以及.pgn,.pdf,.html,......文件的链接)
我使用html-agilitypack查找所有a-href链接。
示例代码:
foreach (HtmlNode link in htmlDocument.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute attribute = link.Attributes["href"];
links.Add(attribute.Value);
}
但我也想找到数据网址。
我必须使用什么XPath语法来查找data-urls。 htmlcode中的示例数据url:
<div class="cbreplay" data-url="2012\edmonton\partien.pgn"></div>
我需要这个例子中的“2012 \ edmonton \ partien.pgn”。我如何用XPath语法实现这一点?
最好的问候,如果我犯了一些不好的错误,请告诉我。这是我的第一个问题。
答案 0 :(得分:19)
以下应该做你想做的事:
foreach (HtmlNode divNode in htmlDocument.DocumentNode.SelectNodes("//div[@data-url]"))
{
HtmlAttribute attribute = divNode.Attributes["data-url"];
links.Add(attribute.Value);
}
有效地,语句//div[@data-url]
应该选择具有data-url属性的所有节点。然后我们拿出这个属性。
如果除了具有此属性的div之外的节点,那么//*[@data-url]
应该可以解决这个问题。