如何将“<”“>”添加到元素值?

How to add "<" ">" to element value?

我需要为 ceneo 准备 XML,我必须添加

<![CDATA[text]]> 

像这样的所有值:

<a name="Kod_producenta"><![CDATA[82981]]></a>
<a name="EAN"><![CDATA[5907640829815]]></a>

我的 xslt 不工作:

<a>
    <xsl:attribute name="name">
        <xsl:value-of select="'Producent'"/>
    </xsl:attribute>
    <xsl:value-of select="concat('<![CDATA[', producer/@name, ']]>')"/>
</a>

我收到如下错误:

element type must not contain the '<' character

永远不可能直接在 XSLT 中编写词法标记(除非可能使用仅在某些情况下有效的禁用输出转义 hack)。 XSLT 旨在生成节点树,而不是词汇 XML 输出,并且定义该树的 XDM 数据模型没有任何 CDATA 知识。

你的 XML 的消费者真的不应该关心文本是否在 CDATA 部分,但如果他们关心,你可以在序列化时使用 <xsl:output cdata-section-elements="..."/>