Firefox 不再解释 XSLT-1.0

Posted

技术标签:

【中文标题】Firefox 不再解释 XSLT-1.0【英文标题】:Firefox doesn't interpret XSLT-1.0 anymore 【发布时间】:2019-11-22 10:32:33 【问题描述】:

我使用 XSLT 将大量数据保存在 XML 文件中,以便在 Firefox 中正确显示内容。但是从今天开始,Firefox 不再解释 XSLT,而是显示白页或块中的数据。

我当前的 Firefox 版本是 68.0(64 位)。新版本中的 XSLT 是否存在错误,或者 XSLT 在 Firefox 68.0 中仅默认禁用?

【问题讨论】:

您是在本地还是从 Web 服务器打开 XML 文件?在前一种情况下,它可能会受到此修复的影响:mozilla.org/en-US/security/advisories/mfsa2019-21/… 我在本地打开文件(file:///home/...) 似乎相关的 bugzilla 错误是 bugzilla.mozilla.org/show_bug.cgi?id=1565261,这表明它确实是由尝试修复 Tim C 链接到的安全问题以及将 about:config 中的 privacy.file_unique_origin 设置为 @987654325 引起的@ 是一种“解决方法”。 @MartinHonnen:这应该是一个答案。 【参考方案1】:

正如 Tim C 在评论中指出的那样,由于安全修复的副作用,在从本地文件系统加载的 XML 文档中使用 <?xml-stylesheet href="foo.xsl" ..?> 不再在 Mozilla 中工作。该问题被报告为错误https://bugzilla.mozilla.org/show_bug.cgi?id=1565261,但似乎无意修复它,因为 Chrome 和其他基于 Chromium 的浏览器早已停止支持从本地文件系统加载的 XML 文档中引用的 XSLT。

然而,错误报告中的讨论表明,将about:config 中的privacy.file_unique_origin 设置为false 是一种“解决方法”。

请记住,它会将您暴露于安全问题,该问题的修复禁用了使用从本地文件系统加载的xml-stylesheet 处理指令引用的 XSLT。

【讨论】:

以上是关于Firefox 不再解释 XSLT-1.0的主要内容,如果未能解决你的问题,请参考以下文章

将 XSLT 1.0 升级到 XSLT 2.0

XSLT 1.0 分组依据

XSLT 1.0- 使用 Muenchian 方法创建表

xslt 1.0 节点集错误,转换无效

XSLT 1.0 替换字符串

XSLT:如何使用 XSLT 1.0 和 XALAN 处理器转换部分转义的 XML?