2

我通过声明在我的 XSLT 1.0 文件中添加了 EXSLT 日期和时间模块:

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ... xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date">

这不会影响我的结果页面,但是当我尝试使用以下命令调用实际日期时:

<xsl:value-of select="date:date-time()"/>

我在加载页面时收到“加载样式表时出错:发生未知错误 ()”消息。有人对我可能遗漏的内容有什么建议吗?提前致谢!

4

1 回答 1

2

但是当我尝试调用实际日期时:

<xsl:value-of select="date:date-time()"/>

我在加载页面时收到“加载样式表时出错:发生未知错误 ()”消息

这意味着您使用的特定 XSLT 处理器没有实现 EXSLT(或只是 EXSLT 的日期时间模块)。

这是一个小转变

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:date="http://exslt.org/dates-and-times"
 >
 <xsl:output method="text"/>

 <xsl:template match="/">
   <xsl:value-of select="date:date-time()"/>
 </xsl:template>
</xsl:stylesheet>

当应用于任何 XML 文档(未使用)时,使用 Saxon 6.5.4 XSLT 1.0 处理器,会产生正确的结果

2010-05-22T12:49:44-07:00

解决方案

要么使用实现 EXSLT 的 XSLT 1.0 处理器,要么将当前日期时间作为参数传递给转换。

如果使用 XSLT 2.x,只需使用 XPath 2.0 函数current-dateTime()

于 2010-05-22T19:54:13.297 回答