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

本文关键字:节点 位置 获取 父节点 Xpath | 更新日期: 2023-09-27 17:49:21

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 nodemno innerText..现在我想知道this节点与其父节点tr的位置

我怎样才能得到它??请提前帮我和谢谢

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

您可以通过以下方式获取位置:

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

以上代码选择所选<td>元素的同一父元素中的所有前面的元素,然后获得这些返回元素的计数加1。

try this

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