Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Browser EXSLT日期和时间函数能否在XSLT 1.0中使用并使用浏览器引擎进行处理?_Browser_Date_Xslt_Exslt - Fatal编程技术网

Browser EXSLT日期和时间函数能否在XSLT 1.0中使用并使用浏览器引擎进行处理?

Browser EXSLT日期和时间函数能否在XSLT 1.0中使用并使用浏览器引擎进行处理?,browser,date,xslt,exslt,Browser,Date,Xslt,Exslt,我的目标是:我需要使用XSL样式表将XML文档中的date of birth元素转换为age值,并生成XHTML页面。我正在使用web浏览器(例如IE/FF)直接打开XML文档 我知道XSLT2.0有内置的日期和时间函数,但我认为目前没有浏览器支持这一功能。因此,我一直尝试使用EXSLT函数,但没有成功 以下是我的示例测试文件: test.xml <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text

我的目标是:我需要使用XSL样式表将XML文档中的date of birth元素转换为age值,并生成XHTML页面。我正在使用web浏览器(例如IE/FF)直接打开XML文档

我知道XSLT2.0有内置的日期和时间函数,但我认为目前没有浏览器支持这一功能。因此,我一直尝试使用EXSLT函数,但没有成功

以下是我的示例测试文件:

test.xml

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<test>
</test>
FF4上的错误:

Error during XSLT transformation: An unknown XPath extension function was called.

这是否意味着主要的web浏览器不支持EXSLT?我是否必须像SAXON/Xalan那样使用XSLT处理器?我做错什么了吗?是否有其他方法?

使用EXSLT支持矩阵作为参考:

以下XSLT处理器支持日期:日期时间:

Chrome、Opera和Safari使用libxslt,但由于禁用了EXSLT,日期时间不起作用:

我认为零碎地添加函数是没有意义的;近5年后,是否仍有任何东西阻止libexslt包含在构建中,并阻止从XSLTExtensions.cpp中的注册器XSLTExtensions调用exsltRegisterAll

IE使用MSXML,它具有以下支持:

MSXML4针对后一个问题提供了两个很好的扩展函数ms:format-date和ms:format-time,但在.NET或MSXML3中不支持它们

没有ms:date-time函数,但有一个

Firefox使用的是自FF6以来的EXSLT日期时间

参考资料


我不知道有哪款浏览器的XSLT处理器完全支持EXSLT。仅广泛支持节点集。两个选项:将当前日期作为参数传递给转换;使用萨克森CE测试版。我在谷歌上搜索了萨克森CE,但只找到了那些版本:HE、PE、EE。我将尝试在Saxon-HE中使用XSLT 2.0。请参阅使用EXSLT支持列表作为参考,如果您指的是多年未更新的EXSLT站点。@michael.hor257k。因此,就目前的问题而言,这仅仅意味着libxslt支持日期时间已经很久了。请阅读答案的其余部分以获取更多最近的参考资料。
Namespace 'http://exslt.org/dates-and-times' does not contain any functions. 
Error during XSLT transformation: An unknown XPath extension function was called.
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)
<?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>