指定节点范围 - Xpath / Html Agility Pack

时间:2014-10-06 18:05:59

标签: c# html xpath html-agility-pack

我想弄清楚指定一系列节点。我已经看到在两个xpath方程中使用“和”的例子,但我不能让它工作,要么返回nothihng,要么给出错误。

例如,我有这个当前的陈述

HtmlNode table = doc.DocumentNode.SelectSingleNode("//table[2]//tbody//tr[3]//table[1]");
foreach (var cell in table.SelectNodes(".//tr//td").Skip(2))
{
     string cleanedHtml = cleaner(cell.InnerText.Trim());
     QuoteItems.Add(cleanedHtml);
}

现在,如果我想获得该Htmlnode,但指定从第一个tr到第6个tr的所有内容,我该怎么做?

即。 我想要一切来自

HtmlNode table = doc.DocumentNode.SelectSingleNode("//table[2]//tbody/tr[3]//table[1]");

HtmlNode table = doc.DocumentNode.SelectSingleNode("//table[2]//tbody/tr[6]//table[1]");

如前所述,我已经尝试过这个,但我只是获得了第一次机会异常。

"//table[2]//tbody/tr[position() >= 3 and position() <=6]//table[1]"

有人可以指出我做错了吗?

1 个答案:

答案 0 :(得分:3)

and放在该表达式的中间位置:

"//table[2]//tbody/tr[position() >= 3 and position() <=6]//table[1]"