我从数据库中提取参数
<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>
XSL:
<xsl:value-of select="$theMessage" disable-output-escaping="yes" />
它显示为代码而不是所需的输出。关于我哪里出错的任何想法?它是在xsl方面还是在数据库中需要CDATA等?
提前致谢。
答案 0 :(得分:2)
如果您传递元素作为参数,则需要使用 xsl:copy-of 而不是 xsl:value-of
<xsl:copy-of select="$theMessage" />
所有 xsl:value-of 将输出元素的文本,而不是元素本身。
答案 1 :(得分:0)
虽然输出转义在过去对我有用,但它并没有对这个数据字符串这样做,因为数据包含'需要转义的标记。
所以字符串是这样的(在java中)。
returnStr = returnStr.replace("'","\\'"); - this escaped those pesky tic marks, or single quotes
并且returnStr等于:<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>
...加上更多的HTML代码和文本
xsl param是相同的:
<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>
从数据库中提取数据,删除单引号,将字符串设置为xsl参数,将参数设置为js变量,然后将其作为输出所需的html放入div中。