我需要从XSL输出嵌入在XSL中的静态CDATA构造,而不是从我正在转换的XML中输出。例如......
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="xml" indent="yes"/>
<!-- ================================================== -->
<xsl:template match="/">
<Document>
<text><![CDATA[
<b>static</b>
<br/><br/>
text
<br/><br/>
]]>
</text>
<xsl:apply-templates select="//tag"/>
</Document>
</xsl:template>
<!-- ================================================== -->
<xsl:template match="tag">
So on and so forth...
</xsl:template>
<!-- ================================================== -->
</xsl:stylesheet>
我想要输出...
<?xml version="1.0"?>
<Document>
<text><![CDATA[
<b>static</b>
<br/><br/>
text
<br/><br/>
]]>
</text>
So on and so forth...
</Document>
但我得到的是......
<?xml version="1.0"?>
<Document>
<text>
<b>static</b>
<br/><br/>
text
<br/><br/>
</text>
So on and so forth...
</Document>
我尝试了几种转义文本和实体的组合,但似乎都没有。
答案 0 :(得分:0)
使用
<xsl:output cdata-section-elements="text" />
为某些元素(spec)强制执行CDATA。
在任何情况下,您目前获得的内容相当于CDATA部分,而应该不会打扰您。 (即:如果由于光学原因而困扰你,那就克服它。如果由于技术原因困扰你,请修理它们。)