Html XSL禁用输出转义不工作

Html XSL禁用输出转义不工作,html,xslt,Html,Xslt,我正在从数据库中提取一个参数 <xsl:param name="theMessage"></xsl:param> 从html中提取的数据如下所示: <style type="text/css">#container {width:100%; margin-top:20px; text-align:center; font-family: Verdana, arial; font-size:100%; font-weight:normal; }</s

我正在从数据库中提取一个参数

<xsl:param name="theMessage"></xsl:param>

从html中提取的数据如下所示:

<style type="text/css">#container {width:100%; margin-top:20px; text-align:center; font-family: Verdana, arial; font-size:100%; font-weight:normal; }</style><div id="container"><b>Text here</b></div>
#容器{宽度:100%;页边距顶部:20px;文本对齐:居中;字体系列:Verdana,arial;字体大小:100%;字体重量:正常;}此处为文本
XSL:

<xsl:value-of select="$theMessage" disable-output-escaping="yes" />

它显示为代码,而不是所需的输出。你知道我哪里出了问题吗?是在xsl端还是在数据库中需要CDATA等


提前感谢。

如果要将元素作为参数传递,则需要使用xsl:copy of而不是xsl:value of

<xsl:copy-of select="$theMessage" />


xsl:value的所要做的就是输出元素的文本,而不是元素本身。

虽然输出转义在过去对我有效,但它对这个数据字符串不起作用,因为数据包含需要转义的“标记”

因此字符串是这样的(在java中)

returnStr等于:
#container{width:100%;边距顶端:20px;文本对齐:居中;字体系列:Verdana,arial;字体大小:100%;字体重量:normal;}这里的文本
…加上更多的html代码和文本

xsl参数是相同的:

<xsl:param name="theMessage"></xsl:param>

在样式表上,新代码如下所示:

<div id="bilbo"></div>
    <script type="text/javascript">
    var outputString = '<xsl:value-of select="$theMessage" />'
    document.getElementById('bilbo').innerHTML = outputString;
    </script>  

变量outputString=''
document.getElementById('bilbo')。innerHTML=outputString;

这就从数据库中提取了数据,去掉了单引号,将字符串设置为xsl参数,将参数设置为js变量,然后将其作为所需的html作为输出放入div中。

请确切地告诉我们您使用的XSLT处理器,如何运行转换,如何看待转换结果。并非所有处理器在所有用例中都支持禁用输出转义,例如Mozilla不支持它:。我找到了答案,请参阅下面的答案。输出转义不是问题所在。谢谢你的帮助!谢谢对我有用。
<div id="bilbo"></div>
    <script type="text/javascript">
    var outputString = '<xsl:value-of select="$theMessage" />'
    document.getElementById('bilbo').innerHTML = outputString;
    </script>