5
我XSL看起來象下面這樣:XSLT調用Java實例方法
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:SimpleDateFormat="java.text.SimpleDateFormat"
xmlns:Date="java.util.Date" exclude-result-prefixes="SimpleDateFormat Date">
<xsl:variable name="s" select="SimpleDateFormat:new(MMM/dd/yyyy-HH/mm/ss/SSS)"/>
<xsl:variable name="date" select="Date:new(number($beginTime))"/>
所以現在如何調用實例的'方法的格式(日期日期)?
如果我使用<xsl:value-of select="s:format($date)" />
,那麼錯誤是:前綴必須解析爲名稱空間:s。
但是,如果我添加這樣的名稱空間:xmlns:s="java.text.SimpleDateFormat"
,<xsl:value-of select="s:format($date)" />
將返回默認格式,而不是指定的格式。
那麼我怎樣才能得到指定的格式,如MM/dd/yyyy -HH/mm/ss/SSS?
對不起,我不太明白'你需要把格式參數放在撇號之間'。在哪裏放置格式參數?但是,非常感謝您的建議,根據您的提示,我做到了。唯一的問題是'SimpldDateFormat.format(Date date)'應該只根據java doc取1個參數,但爲什麼'SimpldDateFormat:format($ s,$ date)'是正確的? – frank
關於格式:我的意思是你需要在撇號之間指定格式字符串「MMM/dd ...」,所以'SimpleDateFormat:new('MMM/dd ..')'而不是'SimpleDateFormat.new(MMM/ddd ...)'這會嘗試將它解釋爲xpath而不是文字。 –
關於參數:是的,這是正確的。當你訪問實例方法時(非靜態的),你需要在開始時增加一個參數來指定你想要使用的那個類的實例(由命名空間前綴指定)。但是,當你訪問靜態方法或構造函數時(例如'SimpleDateFormat.new'調用),你不需要它。 –