入力xmlがあります。たとえば、次のようにします。
<myxml>
<myelement id="1" />
<myelement id="2" />
<myelement id="3" />
</myxml>
別の形式の出力 xml を作成する XSLT を作成したいと思います。たとえば、次のようにします。
<theirxml>
<theirelement id="1" />
<theirelement id="2" />
<theirelement id="3" />
</theirxml>
タグ内にタグを含む xslt を作成できないため (たとえば、"<theirelement id="<xslt:...>" >" のようなもの)、次のように CDATA を使用してそれを行う方法を見つけました (提示されているのは関連部分のみです)。 xslt の):
<xsl:for-each select="myxml/myelement">
<xsl:text><![CDATA[<theirelement id="]]></xsl:text><xsl:value-of select="@name" /><xsl:text><![CDATA[" />]]></xsl:text>
</xsl:for-each>
ただし、生成された出力には「<theirelement ...」ではなく「<theirelement ...」が含まれます。出力に実際に「<」ではなく「<」を含める必要があります。(「>」と「>」も同様)。
その理由は、このプロセスからの出力が、タグが「<tag>」としてエスケープされている場合に xml の読み取りに失敗する一部のプログラムの入力であるためです。
どんな助けでも大歓迎です!