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

标签 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

的位置

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

最佳答案

你可以通过这种方式获得位置:

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

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

关于c# - 如何从Xpath中的父节点获取所选节点的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22319346/

相关文章:

c# - 简单功能的继承(或其他重用方式)

c# - 使用 roslyn 替换语句

python - 如何在 Python WebDriver 中等待 CSS 和 XPath 选择器的组合?

selenium - 以下场景如何使用子元素点击父元素

xml - XPath 帮助。获取具有变量名称的子节点

c# - 如何使用 WebKit.NET 访问 DOM?

c# - 为什么 `[DllImport]` 会以 `RtlSecureZeroMemory` 的入口点失败,即使它是一个有据可查的入口点?

c# - 使用 ref 关键字传递

typescript - 如何避免将 DOM 元素强制转换为 Typescript 中的任何元素?

javascript - 通过 VueJS 选择 DOM 元素