2

假设我有这样的 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 语句。

谢谢!

4

3 回答 3

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

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

于 2010-01-04T15:15:16.557 回答
1

也许我错了,但我认为 XPATH 仅在其自己的抽象模型中选择“节点”序列。如果没有 XSLT,我会迷失在这里。

于 2010-01-04T15:11:14.007 回答
1

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

/a[i or ii]|/a/i|/a/ii|/b[i or ii]|/b/i|/b/ii
于 2010-01-06T12:42:54.490 回答