Проблемы с числовым форматом XML при использовании разделителей

Мы работаем над веб-страницей, которая должна отображать цены так, чтобы пробелы были разделителями групп, а запятые — десятичными разделителями. Например, значение 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>

Любые идеи?


person Beska    schedule 05.02.2009    source источник


Ответы (1)


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

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

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

person Greg    schedule 05.02.2009