1
我想弄清楚指定一个范围的节点。我在两个xpath方程中看到了使用“和”的例子,但是我无法使它工作,要么返回nothihng要么给出错误。指定节点范围 - Xpath/Html敏捷包
例如,我有这个当前语句
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]"
有人能指出我做错了什么吗?
哦咄哈哈。我确实有这个,但它只是给了我这种情况下的第一个元素,所以只出现'tr [3]'而不是'tr [6]'。 – Austin 2014-10-06 18:25:17
@奥斯汀,如果你感叹'SelectSingleNode'只选择一个节点,请改用'SelectNodes'。 – kjhughes 2014-10-06 19:53:15
@kjhughes如何获得多个节点的单个元素?如果我做了两个foreach(包装一个foreach做上面的表达式),然后我多次得到结果。有没有办法像HtmlNode一样使多个节点,因为HtmlNode不能=节点集合(.SelectNodes)。 – Austin 2014-10-06 19:59:23