1

我正在使用 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,其中有一个带有 atrrib desc='title' 的 h3(h3 的位置无法固定)。

问题:-假设如果将 ahref 属性 ["href"] 存储在 10 的数组中。然后所有元素都具有相同的第一个字符串。所以我发现使用 // 它引用了整个文档http://example.com。对于这种情况,我们如何搜索 inside_li HtmlNode 中的任何位置。以及为什么即使我告诉要在 inside_li 内部搜索而不是整个文档也会出现这个问题

4

1 回答 1

2

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

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

/ 表示“从根本上”

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

于 2013-05-17T11:56:09.533 回答