【问题标题】:XSLT disable-output-escaping not holding across two diff serversXSLT 禁用输出转义不能跨越两个不同的服务器
【发布时间】:2011-06-21 21:20:03
【问题描述】:

Gidday,

我有一个使用 XSLT 的页面做一些很棒的事情,而且大部分情况下进展顺利,但我遇到了障碍。

此页面:http://codefinger.co.nz/_testing/build_2011/ 阻塞了实际上不在我的 .xsl 文件中的 CDATA 部分,它们似乎是在转换过程中插入的(引发 Javascript 解析错误)。

有趣的是,这个 SO 问题:xslt, javascript and unescaped html entities 解决了我本地测试站点上的问题(我用禁用输出转义 XSL 标签包装了我的脚本块的内容),这是一个带有此 XSL 配置的 WAMP 2.0 堆栈:

我的实时托管服务器有这个配置:http://codefinger.co.nz/php-info.php,但同样的方法不起作用。

这里是源 .xsl 文件:http://codefinger.co.nz/_testing/build_2011/xsl/siteContent.xsl,关联的 .xml 是有效的,它在这里:http://codefinger.co.nz/_testing/build_2011/xml/siteContent.xml

有什么想法吗?

应该注意的是,我真的不喜欢将 3 个脚本块中的 2 个移动到外部文件 - 一个是 Cufon 字体替换(所以我可以移动它),另一个是 wee由 Luke Smith 编写的 head 标签中的脚本,当 JS 可用时转换为 CSS。

【问题讨论】:

  • 它们是不同的操作系统吗?与在 OS/400 上运行的 IBM JRE 相比,我发现在 Windows 上使用 IBM JRE 有类似的差异
  • 是的,Linux 托管,Windows 本地...
  • 你能举一个 XML 输入转换的例子吗?
  • 在 xsl 中使用CDATA 部分怎么样?像这样:<xsl:text disable-output-escaping="yes"><![CDATA[ ..... ]]></xsl:text>

标签: javascript xslt escaping


【解决方案1】:

在您的 <xsl:text> 元素中使用 CDATA 部分 像这样:

<xsl:text disable-output-escaping="yes"><![CDATA[
    ..... 
]]></xsl:text> 

在上面的 cmets 中,您发现自己更好:

<xsl:comment><![CDATA[
    ..... 
]]></xsl:comment>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多