Проблемы с форматным номером XML при использовании разделителей - PullRequest
2 голосов
/ 06 февраля 2009

Мы работаем над веб-страницей, которая должна отображать цены таким образом, чтобы пробелами были разделители групп, а запятыми - десятичные разделители. Например, значение 1234567.89 должно отображаться как 1 234 567,89. (На самом деле мы используем  , поэтому получаем неразрывный пробел.)

Это похоже на правильный XSL, и он почти работает, но я получаю "." характер после всего остального. Так что я в конечном итоге "1 234 567,89." вместо "1 234 567,89".

<?xml version='1.0' encoding='iso-8859-1'?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
xmlns:hsi="http://www.myfakecompany.com/fakey" 
extension-element-prefixes="msxsl hsi">

    <xsl:decimal-format name="euro" 
        decimal-separator="," 
        grouping-separator="&#160;"/>

    <xsl:template match="/">

    <xsl:value-of select="format-number(1234567.89, '#&#160;###.##;(#&#160;###.##)', 'euro')"/>

    </xsl:template>
</xsl:stylesheet>

Есть идеи?

1 Ответ

3 голосов
/ 06 февраля 2009

Строка формата применяется после установки десятичного разделителя, поэтому вам нужно изменить ее на:

'#&#160;###,##;(#&#160;###,##)'

т.е. с запятыми вместо точек.

...