0

これに似たxml構造があります。

<outer>
    <inner>text</inner>
    <inner2>text2</inner2>
</outer>

開始タグと終了タグは残してこんな感じにしたいです。

<outer>
    <inner></inner>
    <inner2></inner2>
</outer>

これは私が使用している現在のxslです

 <xsl:template match="node()">
  <xsl:copy>
   <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
 </xsl:template>

  <xsl:template match="text()"/>

私を残して

<outer>
   </inner>
   </inner2>
</outer>

開始タグと終了タグの両方を取得するにはどうすればよいですか?

4

1 に答える 1

2

XSLTがあなたに与えることを期待しています

<outer>
   <inner/>
   <inner2/>
</outer>

とまったく同じ XML であるため、これは正しい結果です。

<outer>
   <inner></inner>
   <inner2></inner2>
</outer>

XSLT 内では、最終的なシリアライザーが出力ツリーを表すために 2 つの同等の表現のどちらを使用するかを制御する方法はありません。使用しているプロセッサに応じて、プロセッサ固有の方法で影響を与える可能性がありますが、XML ツールは両方の形式を同じように扱うため、一般的には問題ではありません。

于 2013-07-09T13:31:48.620 に答える