如何从Xpath中的父节点获取所选节点的位置

时间:2014-03-11 07:45:13

标签: c# xpath dom

string html = "<table><tr><td>xyz</td><td>abc</td><td>mno</td></tr></table>"
HtmlDocument res = new HtmlDocument();
res.LoadHtml(html);
res.DocumentNode.SelectNodes("//table/tr/td[contains(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'mno')]")  

上面的代码为我td node提供了mno innerText .. 现在我想知道this节点从其父节点tr

的位置

我怎样才能得到它? 请帮助我,并提前致谢

2 个答案:

答案 0 :(得分:0)

试试这个

//table/tr/td[contains(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'mno')]/count(preceding-sibling::td) + 1

答案 1 :(得分:0)

你可以这样获得这个位置:

var pos = res.DocumentNode.SelectNodes(
                "//table/tr/td[contains(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'mno')]/preceding-sibling::*"
                ).Count + 1;

上面的代码选择所选<td>元素的同一父元素中的所有前面元素,然后获取那些返回元素的数量加一。