我想弄清楚指定一系列节点。我已经看到在两个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]"
有人可以指出我做错了吗?
答案 0 :(得分:3)
将and
放在该表达式的中间位置:
"//table[2]//tbody/tr[position() >= 3 and position() <=6]//table[1]"