【问题标题】:How to add "<" ">" to element value? [duplicate]如何将“<”>“添加到元素值? [复制]
【发布时间】:2019-09-20 09:27:32
【问题描述】:

我需要为 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>

我收到如下错误:

元素类型不能包含'

【问题讨论】:

  • 如果 XSLT 处理器对结果进行序列化,&lt;xsl:output cdata-section-elements="a"/&gt; 可能会有所帮助。

标签: xml xslt xslt-1.0 cdata


【解决方案1】:

永远不可能直接在 XSLT 中编写词法标记(除非可能使用 disable-output-escaping hack,它只在某些情况下有效)。 XSLT 旨在生成节点树,而不是词法 XML 输出,并且定义该树的 XDM 数据模型不了解 CDATA。

XML 的使用者真的不应该关心文本是否在 CDATA 部分中,但如果他们这样做,您可以在序列化时使用 &lt;xsl:output cdata-section-elements="..."/&gt; 将其添加

【讨论】:

    猜你喜欢
    • 2018-04-14
    • 2019-10-11
    • 2019-12-20
    • 1970-01-01
    • 2019-01-07
    • 2016-08-02
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    相关资源
    最近更新 更多