0

以下は、私のinput.xmlファイルのコードの一部です。

<info>
<name>
<surname>Sachin</surname>
<x> </x>
<given-names>J</given-names>
</name>
<x>, </x>
<name>
<surname>Sushant</surname>
<x> </x>
<given-names>K</given-names>
</name>
</info>

copy-of次のように要素を使用してこれらのノードをコピーすると

<xsl:copy-of select="info"></xsl:copy-of>

次に、次の出力が生成されます。

<info>
<name>
<surname>Sachin</surname>
<x xml:space="preserve"> </x>
<given-names>J</given-names>
</name>
<x xml:space="preserve">, </x>
<name>
<surname>Sushant</surname>
<x xml:space="preserve"> </x>
<given-names>K</given-names>
</name>
</info>

xml:space="preserve"output.xmlファイルから削除したい。

4

1 に答える 1

3

xsl:copy-of は正確なコピーを作成します。少しでも変更を加えたい場合は、"変更された ID テンプレート" コーディング パターンを使用する必要があります。この場合、次のテンプレート ルールでそれを行う必要があります。

<xsl:template match="*">
  <xsl:copy>
    <xsl:copy-of select="@* except xml:space"/>
    <xsl:apply-templates/>
  </xsl:copy>
</xsl:template>

(「except」演算子は XPath 2.0 です - 1.0 で行き詰まっている場合は、を使用してください@*[name() != 'xml:space'])

于 2011-07-29T18:55:01.817 に答える