1

我无法从 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()]) ] 但不起作用。

4

3 回答 3

1

使用//object/c[preceding-sibling::*[1][self::a]].

于 2012-11-25T15:19:36.733 回答
1

使用

//a/following-sibling::*[1][self::c]
于 2012-11-25T15:40:48.440 回答
0

你可以做到//c[local-name(preceding-sibling::*[1]) = 'a']。我必须对您的 XML 文件进行一些更正 -c元素没有关闭,并且元素的结束标记root丢失。

于 2012-11-25T14:52:17.133 回答