xml - 如何在 XSLT 中使用 <![CDATA[]]>?

标签 xml xslt

我在 XSLT 变量中使用如下所示:

<xsl:variable name="ShortDescription" select="str[@name = 'ShortDescription']"/>
<!--Short Description field-->
       <xsl:if test="$ShortDescription !=''">

        <shortdescription><![CDATA[ <xsl:value-of select="$ShortDescription" disable-output-escaping="no"/> ]]></shortdescription>

       </xsl:if>

但它显示为文本不是 $ShortDescription 的值变量和输出看起来像:

<shortdescription>
&lt;xsl:value-of select="$ShortDescription" disable-output-escaping="no"/&gt;
</shortdescription>

预期输出如下:

<shortdescription>
<![CDATA[Maximum Power: 520 W<br/>+12V Rails: Dual<br/>]]>
</shortdescription>

如何使用<![CDATA[]]>在 XSLT 中?

最佳答案

XSLT 是 XML,因此您当然可以像您所做的那样在 XSLT 代码中使用 CDATA 部分。然而,您似乎希望 XSLT 代码的输出包含一个用于 shortdescription 内容的 CDATA 部分,在这种情况下您需要

<xsl:output method="xml" cdata-section-elements="shortdescription"/>

XSLT 将保持原样

<shortdescription><xsl:value-of select="$ShortDescription"/></shortdescription>

关于xml - 如何在 XSLT 中使用 &lt;![CDATA[]]>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25400067/

相关文章:

ruby - 根据命名空间前缀删除 nokogiri 属性

c# - 如何在c#中foreach以下xml

xml - 合并多个 XML 文件

xml - XSLT 格式日期

java - Camel 路线 : read xml into pojo and write it back into xml file

java - 失去焦点后无法取消对话框?

c# - 如何编写此嵌套的 Linq To Xml 查询

java - XSLT 参数不起作用

xml - XSLT 包含错误

javascript - 使用 Javascript 修改 XML 元素(在 XSLT 样式表中)