我有问题从xml文档中选择完全在其他元素之后的元素。
在此示例中,我想选择元素<c/>
,它正好位于<a/>
元素之后。
<root>
<object>
<a/>
<b/>
<c id="1" />
</object/>
<object>
<a/>
<c id="2"/>
</object>
</root>
我想得到元素<c id="2"/>
我试过// object / c [position() - 1 =(../ a [position()])]但是不行。
答案 0 :(得分:1)
使用//object/c[preceding-sibling::*[1][self::a]]
。
答案 1 :(得分:1)
使用强>:
//a/following-sibling::*[1][self::c]
答案 2 :(得分:0)
你可以//c[local-name(preceding-sibling::*[1]) = 'a']
。我不得不对您的XML文件应用一些更正 - c
元素未关闭,root
元素的结束标记丢失。