可以在XSLT 1.0中使用EXSLT日期和时间功能并使用浏览器引擎对其进行处理吗?

| 我的目标:我需要使用XSL样式表将XML文档中的“生日”元素转换为“年龄”值,并生成XHTML页面。我正在直接使用网络浏览器(例如IE / FF)打开XML文档。 我知道XSLT 2.0具有内置的日期和时间功能,但我认为当前没有浏览器支持此功能。因此,我一直在尝试使用EXSLT函数,但没有成功。 这是我的示例测试文件: test.xml
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<?xml-stylesheet type=\"text/xsl\" href=\"test.xsl\"?>
<test>
</test>
test.xsl
<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>
IE8错误:
Namespace \'http://exslt.org/dates-and-times\' does not contain any functions. 
FF4错误:
Error during XSLT transformation: An unknown XPath extension function was called.
这是否意味着主流网络浏览器不支持EXSLT?我必须使用像SAXON / Xalan这样的XSLT处理器吗?难道我做错了什么?还有其他方法吗?     
已邀请:
使用EXSLT支持矩阵作为参考:   以下XSLT处理器支持date:date-time:
SAXON from Michael Kay (version 6.4.2)
Xalan-J from Apache (version 2.4.D1)
4XSLT, from 4Suite. (version 0.12.0a3)
libxslt from Daniel Veillard et al. (version 1.0.19)
Chrome,Opera和Safari使用
libxslt
,但由于禁用了EXSLT,
date-time()
不起作用:   我认为零散添加功能是没有道理的;在将近5年后,还有什么阻止libexslt包含在build中,以及阻止从XSLTExtensions.cpp中的registerXSLTExtensions()调用exsltRegisterAll()的问题? IE使用
MSXML
,它具有以下支持:   MSXML4提供了两个很好的扩展功能,ms:format-date()和ms:format-time()来解决后一个问题,但是.NET或MSXML3不支持它们。 没有
ms:date-time()
函数,但是有MSXSL扩展名。
<?xml version=\'1.0\'?>
<xsl:stylesheet version=\"1.0\" 
    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" 
    xmlns:msxsl=\"urn:schemas-microsoft-com:xslt\"
    xmlns:ecma =\"about:ecma\">
    <msxsl:script implements-prefix=\"ecma\">
     <![CDATA[
      function GetCurrentDateTime()
        {
        var currentTime = new Date();
        var month = currentTime.getMonth() + 1;
        var day = currentTime.getDate();
        var year = currentTime.getFullYear();
        return(month + \"/\" + day + \"/\" + year);
        }
     ]]>
    </msxsl:script>

<xsl:template match=\"/\">
    <xsl:value-of select=\"ecma:GetCurrentDateTime()\"/>
</xsl:template>

</xsl:stylesheet>
Firefox使用Transformiix,该版本自FF6起便支持EXSLT
date-time()
。 参考文献 MDN:EXSLT EXSLT-日期:date-time Mozilla中的XSL转换(XSLT) 浏览器中对XSLT支持的测试用例 Mozilla错误603159-实现exslt-date:date-time() Webkit错误4079通过libexslt支持EXSLT Mozilla错误265254-支持exlst:date Transformiix:可用的元素和功能 使用EXSLT.NET构建实用的解决方案 Microsoft XPath扩展功能     

要回复问题请先登录注册