可以在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处理器吗?难道我做错了什么?还有其他方法吗?
没有找到相关结果
已邀请:
1 个回复
旅牢斯讲
Chrome,Opera和Safari使用
,但由于禁用了EXSLT,
不起作用: 我认为零散添加功能是没有道理的;在将近5年后,还有什么阻止libexslt包含在build中,以及阻止从XSLTExtensions.cpp中的registerXSLTExtensions()调用exsltRegisterAll()的问题? IE使用
,它具有以下支持: MSXML4提供了两个很好的扩展功能,ms:format-date()和ms:format-time()来解决后一个问题,但是.NET或MSXML3不支持它们。 没有
函数,但是有MSXSL扩展名。
Firefox使用Transformiix,该版本自FF6起便支持EXSLT
。 参考文献 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扩展功能