我正在尝试使用版本2.0的XSLT将XML转换为CSV。但是在XSLT中使用format-date方法时出现编译错误。 以下是错误:在XSLT中使用format-date()方法时出现编译错误
Error checking type of the expression 'funcall(format-date, [variable-ref(dt/string), literal-expr([D01]/[M01]/[Y0001])])'.
FATAL ERROR: 'Could not compile stylesheet'.
XSLT代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:func="http://exslt.org/functions" xmlns:date="http://exslt.org/dates-and-times"
extension-element-prefixes="date" date:doc="http://www.exslt.org/date">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:variable name="dt" select="'2013-04-04'"/>
<xsl:value-of select="format-date($dt, '[D01]/[M01]/[Y0001]')" />
<xsl:value-of select="format-date(current-date(), '[D01]/[M01]/[Y0001]')" />
</xsl:template>
</xsl:stylesheet>
即使在将其转换为日期之后也会得到相同的错误,当我使用“current-date()”时,也会得到相同的错误。我不确定我是否缺少一些东西。当我尝试在XSLT中使用日期函数时,出现此编译错误。没有日期函数,我的XSL代码工作正常。我正在使用2.0版 – Jyothi 2013-04-04 18:19:18
也许你没有使用2.0版。有时候人们会认为只是在样式表中写入version =“2.0”会自动将XSLT处理器变成2.0处理器。你如何进行转型? – 2013-04-04 19:49:35
我正在使用java代码的“javax.xml.transform”转换器。我想将从“System.currentTimeMillis()”方法返回的日期时间转换为用户可读的格式,如“MM/dd/yyyy hh:mm:ss a”“。 从“System.currentTimeMillis()”(例如:1364969832764)返回的值被写入XML,然后我试图通过XSLT将其转换为日期时间格式。 – Jyothi 2013-04-05 14:44:04