2012-11-26 162 views
3

我有一個在XSD中定義的十進制變量,例如可以包含值1,5; 1,50; 1550; 1500; ...因此,它可能有未知的小數位數,甚至包含零。 現在我已經編寫了一個XSLT(2.0),並將與Saxon一起執行。XSLT:SHOW尾隨零

問題是我想顯示XML中的值'原樣',唯一的區別是我想使用正確的,依賴於語言的小數點分隔符。

號格式選項僅允許我使用的字符(#或0),是否去除尾隨零,或者在後者的情況下「硬編碼」零的數目....

是有任何選項可以讓我做我所需要的,而不需要退回到小數點分隔符的字符串替換,因爲我覺得這將是格式數函數的嚴重短缺?

回答

1

編寫一個函數爲您創建一個格式數字格式,該格式考慮了原始值中使用的小數位數。

format-number(., concat('###,###.', substring('0000000000000', 1, concat(string-length(substring-after(., ','))))), euro) 

使用十進制格式的語言dependend格式:

<xsl:decimal-format name="euro" decimal-separator="," grouping-separator="."/>