我在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>
<xsl:value-of select="$ShortDescription" disable-output-escaping="no"/>
</shortdescription>
预期输出看起来像:
<shortdescription>
<![CDATA[Maximum Power: 520 W<br/>+12V Rails: Dual<br/>]]>
</shortdescription>
如何在XSLT中使用<![CDATA[]]>
?
答案 0 :(得分:9)
XSLT是XML,所以当然你可以在XSLT代码中使用CDATA部分,就像你所做的那样。但是,您似乎希望XSLT代码的输出包含shortdescription
内容的CDATA部分,在这种情况下,您需要
<xsl:output method="xml" cdata-section-elements="shortdescription"/>
而XSLT只会保持
<shortdescription><xsl:value-of select="$ShortDescription"/></shortdescription>