使用XPATH,如何在保留路径的同时选择多个元素

时间:2010-01-04 15:05:48

标签: select xpath element

假设我有这样的XML:

<a>
  <b>
    <i>data</i>
    <ii>data</ii>
    <iii>data</iii>
  </b>
  <b>
    <i>data<i>
    <ii>data<ii>
    <iii>data</iii>
  </b>
</a>

使用XPath,我如何选择上面的XML来创建这样的结构:

  <b>
    <i>data</i>
    <ii>data</ii>
  </b>
  <b>
    <i>data<i>
    <ii>data<ii>
  </b>  

在这种情况下,我只对i和ii感兴趣,但希望保留外部元素。我也不能使用XSLT,只能使用XPATH语句。

谢谢!

3 个答案:

答案 0 :(得分:3)

/a/*/i/..|/a/*/ii/..

“从a,选择所有子项,然后选择所有”i“元素,然后选择父项,或者从选择所有子项中选择所有”ii“元素,然后选择父项。

答案 1 :(得分:1)

也许我错了,但我认为XPATH只在自己的抽象模型中选择“节点”序列。没有XSLT,我会迷失方向。

答案 2 :(得分:1)

选择所有节点并包括其父节点外部节点:

/a[i or ii]|/a/i|/a/ii|/b[i or ii]|/b/i|/b/ii