常见的 XSLT 错误

MIME 类型

您的服务器需要同时发送源文件和样式表,并且其 MIME 类型应为 XML 类型,即 text/xmlapplication/xml。要了解当前类型,请在 Mozilla 中加载文件并查看页面信息。或者使用下载工具,这些工具通常会显示 MIME 类型。

在 Firefox 6 及更高版本中,您还可以使用官方的 XSLT MIME 类型:application/xslt+xml

命名空间

XSLT 1.0 的命名空间是 http://www.w3.org/1999/XSL/Transform。旧版本的 IE 使用不同的命名空间。然而,这些版本也使用了 XSLT 的草案版本,这与最终成为 XSLT 1.0 规范的版本不兼容。Firefox 只支持官方的 XSLT 1.0 版本。

缺失的功能

XSLT 1.0 规范中存在一些 Firefox 目前尚不支持的功能。具体来说:

  • XPath 表达式中的 namespace:: 轴。希望将来会支持此功能。
  • disable-output-escaping 属性。此功能控制构造的输出文档的序列化方式。然而,Firefox 从不序列化输出文档,因此该属性实际上不适用。虽然我们可以尝试添加一些启发式方法来仅序列化和重新解析应用了 disable-output-escaping 的输出文档的部分,但启发式方法通常会出错并导致令人惊讶的结果,因此我们一直不愿添加此功能。很多时候,样式表会包含类似 <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> 的代码,这相当于在样式表中放入 &#160;,这在所有 XSLT 引擎中都能很好地工作。我们确实意识到缺少 disable-output-escaping 是一个问题,并且我们希望找到解决方案,但到目前为止我们还没有找到任何好的解决方案。
  • <xsl:namespace-alias> 元素。

如果您想帮助实现上述任何功能,我们将非常感谢您的帮助。