使用Xpath'//'在HtmlNode中搜索

时间:2013-05-17 10:25:07

标签: asp.net html-agility-pack

我正在使用HTML敏捷包解析网页,其中我遍历每个所需的子节点 这是我正在做的事情

HtmlDocument doc = web.Load("http://example.com");
HtmlNode list = doc.DocumentNode.SelectSingleNode("//ol[@class='list']")
foreach (HtmlNode inside_li in linode.ChildNodes)
{
  if (inside_li.Name == "div")
    {
       HtmlNode ahref = inside_li.SelectSingleNode("//h3[@desc='title']/a");
    }
}

网站结构: - 有许多具有attrib class ='list'的ol,每个都有一个div,其中h3与atrrib desc ='title'在某处(h3的位置无法修复)。

问题: - 假设在数组10中存储ahref attrib [“href”]。然后所有元素都具有相同的第一个String。所以我想出了//它正在引用整个文档http://example.com。对于这种情况,我们如何在inside_li HtmlNode中搜索任何地方。 为什么即使我在内部搜索内部而不是整个文档时也会出现此问题

1 个答案:

答案 0 :(得分:2)

如果您只想从当前节点查看,只需删除XPATH表达式中的//,例如:

inside_li.SelectSingleNode("h3[@desc='title']/a");

/表示“从根”

//表示“从根”和“递归”