我正在嘗試使用版本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