У меня есть входной XML, сказать:Спасаясь XML тег в XSLT
<myxml>
<myelement id="1" />
<myelement id="2" />
<myelement id="3" />
</myxml>
Я хочу создать XSLT, который создает выходной XML в другой форме, скажем:
<theirxml>
<theirelement id="1" />
<theirelement id="2" />
<theirelement id="3" />
</theirxml>
Поскольку I не может создать 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 ...". Мне нужен вывод, чтобы фактически содержать «<», а не «& lt;» (то же самое относится к «>» и «&»;).
Причина в том, что выход из этого процесса является входом для некоторой программы, которая не считывает xml, когда теги экранируются как «& lt; tag & gt.».
Любая помощь была бы принята с благодарностью!