2014-07-08 37 views

回答

1

這個問題差不多有三週的時間了,所以也許你會找到一個答案,比如在Michael Kay看到的XSLT 2.0 and XPath 2.0 Programmer's Reference的第781頁。或者也許是somewhere else on the web

爲了在XSLT 2.0中實現您想要的功能,我們首先需要將類似日期的字符串轉換爲國際日期時間表示法。幸運的是,我們只需要關心日期部分,其格式應該是YYYY-MM-DD

之後,我們「只是」需要調用format-date用適當的圖片字符串:

<!-- first, convert your date into int'l date-notation with a regex --> 
<xsl:variable 
    name="date" 
    select="replace('14/09/2014', '(\d+)/(\d+)/(\d+)', '$3-$2-$1')" /> 

<!-- then, use a properly formatted picture string to get the abbrev. month --> 
<xsl:value-of 
    select="format-date(xs:date($date), '[D01]/[MNn,3-3]/[Y]')" /> 

輸出與像SaxonExselt(沒有嘗試Altova),符合處理器是這​​樣的:14/Sep/2014

圖片串的工作原理如下(從同一本書我引用):

  • [xxxx]是可變標記
  • [D01]格式化天部分爲兩位數日(離開了零如果您不想要前導零)
  • [MNn,3-3]使用M格式化該月份作爲個案詞與Nn與寬度最小三和最多三與3-3
  • [Y]將默認格式的年份格式設置爲四位數年份。

如果您需要本月的全名,請刪除寬度說明符。如果您需要其他輸出,您可以在圖片字符串中使用check out the table in the XPath 3.0 specification

+0

非常感謝解決方案.... – harsha

相關問題