假设我有一个XML(子)树
n
|-a
| |- b
|-c
| |- x
| |- d
|-e
鉴于我有一个选择器 X 将选择节点x,我怎样才能选择不直接在从n到x的链上的最顶层元素(即排除它们的子节点)?因此,例如,结果应为[a,d,e] .
另外,n不一定是文档的根,x的后代也应该被排除 .
编辑:
直接删除链上的节点是微不足道的:
.//*[not(descendant::X or ancestor-or-self::X)]
所以问题就变成了:给定一个返回一些断开连接的树的XPath,如何获取每个树的根节点 .
编辑2:
由于人们对原因感兴趣:我正在测试一个带有第三方窗口小部件的网站,该窗口小部件应该生成一个像 <n><c><x>...</x></c></n>
这样的容器节点n和内容x的树 . 这里c可以是一个或多个级别的元素 .
现在,在某些情况下,窗口小部件会生成比所需更多的标记(例如c或x的兄弟),我的测试应该选择那些元素并报告 .
1 回答
弄清楚了: