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

親、外側のノードを含むすべてのノードを選択するには、次のようにします。

/a[i or ii]|/a/i|/a/ii|/b[i or ii]|/b/i|/b/ii
于 2010-01-06T12:42:54.490 に答える
1

私は間違っているかもしれませんが、XPATH は独自の抽象モデルで「ノード」のシーケンスのみを選択すると考えていました。ここに XSLT がなければ、私は途方にくれます。

于 2010-01-04T15:11:14.007 に答える