我有这个XPath,我不太了解它。 xml文件结构是什么样的?
/child::p/child::c[preceding-sibling::* = following-sibling::* and preceding-sibling::* != following-sibling::*]
答案 0 :(得分:1)
这是非常奇怪的xpath。
这是文件
<p>
<d>x</d>
<d>1</d>
<c>d</c>
<p>x</p>
<d>2</d>
</p>
和
<c>d</c>
与您的xpath匹配。
答案 1 :(得分:1)
表达式
child::c[preceding-sibling::* = following-sibling::* and preceding-sibling::* != following-sibling::*]
表示“查找子元素c
,其前兄弟值等于c
的后续兄弟值,并且还有一个不等于它的前兄弟值跟随兄弟价值。
在上面给出的XML中,
<p>
<d>x</d>
<d>1</d>
<c>d</c>
<p>x</p>
<d>2</d>
</p>
应用xpath将导致
<c>d</c>
因为满足条件preceding-sibling::* = following-sibling::*
(在这种情况下分别是<d>x</d>
和<p>x</p>
)并且条件preceding-sibling::* != following-sibling::*
也得到满足(先前的兄弟值:{{1 }和x
;跟随 - 兄弟值:1
和x
)。如果从上面的XML中删除前一个兄弟2
,那就是:
<d>x</d>
你将没有输出。