如何在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 node
有mno
innerText..现在我想知道this
节点与其父节点tr
的位置
我怎样才能得到它??请提前帮我和谢谢
您可以通过以下方式获取位置:
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