我有一个输入 xml,说:
<myxml>
<myelement id="1" />
<myelement id="2" />
<myelement id="3" />
</myxml>
我想创建一个 XSLT 来创建不同形式的输出 xml,比如:
<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。
任何帮助将不胜感激!