xpath,选择其他元素

时间:2012-11-25 14:43:18

标签: xml xpath

我有问题从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()])]但是不行。

3 个答案:

答案 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元素的结束标记丢失。