2

再会!我下载了 Altova XMLSpy 试用版,安装了 FOP 0.95 并尝试执行 XSLT(1.0 版)转换。我的模板是有效的,但在转换过程中,它在包含“date-time()”函数的行上失败:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:dt="http://exslt.org/dates-and-times" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="dt exsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>

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

</xsl:stylesheet>

错误信息是:

Error in XPath expression
Unknown function - Name and number of arguments do not match any function signature in
the static context - 'http://exslt.org/dates-and-times:date-time'

请问如何使这个功能可用?我确定这个功能存在。例如,该模板在此在线 XSLT 测试器中工作:http: //markbucayan.appspot.com/xslt/index.html

先感谢您!沃杰科技

更新:我安装了 SAXON 9(HE 和 EE),配置了 ALTOVA 以使用它,但同样的错误。

4

3 回答 3

4

如果您使用的是 Altova 或 saxon,则可以使用 XSLT2 而不是 XSLT1,因此不需要加载 EXSLT 扩展,xpath2 内置了此功能

select="current-dateTime()"

http://www.w3.org/TR/xpath-functions/#func-current-dateTime

于 2012-03-14T12:06:03.493 回答
0
`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" extension-element-prefixes="msxsl" xmlns:local="urn:local>
<msxsl:script language="CSharp" implements-prefix="local">


public string dateTimeNow()
    {       
      return DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssZ"); 
    } 

</msxsl:script> </xsl:stylesheet>`

然后像这样使用它<xsl:param name="dnes" select="local:dateTimeNow()"/>

于 2013-07-30T07:40:50.327 回答
0

请使用支持 XSL 2.0 的 Altova xml spy 9 版本。

谢谢阿迪亚

于 2013-07-30T09:03:37.293 回答