我正在使用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中搜索任何地方。 为什么即使我在内部搜索内部而不是整个文档时也会出现此问题
答案 0 :(得分:2)
如果您只想从当前节点查看,只需删除XPATH表达式中的//,例如:
inside_li.SelectSingleNode("h3[@desc='title']/a");
/表示“从根”
//表示“从根”和“递归”