2010-05-22 22 views
2

我加入了EXSLT日期和次模塊在我的XSLT 1.0文件通過聲明:在XSLT使用EXSLT日期和次模塊1.0產量未知錯誤

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ... xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date"> 

這不會影響我的結果頁,但是當我嘗試調用實際日期:加載我的網頁時消息:

<xsl:value-of select="date:date-time()"/> 

我收到一個「發生未知錯誤()錯誤加載樣式表」。 有沒有人有建議,我可能會失蹤?提前致謝!

+0

好問題(+1)。看到我的答案forexplanation和一個可能的解決方案。 – 2010-05-22 19:54:56

回答

2

,但是當我嘗試調用實際 日期:

<xsl:value-of select="date:date-time()"/>

我收到 一個「錯誤加載樣式表:發生 未知錯誤()」消息 加載時,我的頁面

這意味着特定的XSLT處理器您正在使用沒有按不實現EXSLT(或只是EXSLT的日期時間模塊)。

這裏是一個小變換

<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> 

當施加到任何XML文檔(未使用),與撒克遜6.5.4 XSLT 1.0處理器,正確的結果產生

2010-05-22T12:49:44-07:00 

解決方案

可以使用實現EXSLT的XSLT 1.0處理器,也可以將當前日期時間作爲參數傳遞給轉換。

如果使用XSLT 2.x中,只使用XPath 2.0功能current-dateTime()

+0

我可能必須將當前的日期時間作爲參數傳遞 - 您最初會推薦什麼來獲取當前的日期時間? – danielle 2010-05-24 17:24:32

+0

@danielle:在開始轉換的編程語言中應該有這樣一種方法/函數。例如,在C#中這是'DateTime.Now.ToString()' – 2010-05-24 17:50:12