【发布时间】:2010-03-20 22:11:18
【问题描述】:
我想要实现的是提取所有带有以 http://、https:// 或 / 开头的 href 属性的链接。这些链接位于具有特定类的表中(tbody > tr > td 等)。我以为我可以只指定 a 元素而不指定它的整个路径,但它似乎不起作用。我在选择链接的行收到 NullReferenceException:
var table = doc.DocumentNode.SelectSingleNode("//table[@class='containerTable']");
if (table != null)
{
foreach (HtmlNode item in table.SelectNodes("a[starts-with(@href, 'https://')]"))
{
//not working
我不知道有关 XPath 的任何建议或最佳实践。两次查询文档时会产生开销吗?
【问题讨论】:
-
在我的解决方案中,我为应该选择的所有三个不同的
<a>节点提供了一个 XPath 表达式。此外,在文档中查找所有<a>节点更加精确和高效(正如另一个答案所建议的那样——//a)
标签: c# xpath html-agility-pack