Есть задача вывести некоторые данные, взятые из базы данных, используя XSLT. Текущий язык приложения - ru_RU, поэтому десятичный разделитель - запятая. Похоже,
<data>
<row>
<date value="28.04.2010"/>
<clicks value="281"/>
<depth value="1,7"/>
<row>
<row>
<date value="29.04.2010"/>
<clicks value="15"/>
<depth value="3"/>
<row>
<data>
Необходимо отформатировать значение глубины как десятичное число: 1,70 и 3,00. Когда я пытаюсь преобразовать значение ising:
<xsl:value-of select="format-number(number(depth/@value)), '##.##'"/>
Я получаю NaN , поскольку XSLT-процессор не считает запятую десятичным разделителем при приведении значения атрибута к числу.
Как-то помогает, когда я вручную «переводю» исходную строку из формата «десятичная запятая» в «десятичную точку» один
<xsl:value-of select="format-number(number(translate(depth/@value, ',', '.'))), '##.##'"/>
но выглядит довольно некрасиво.
Есть ли более правильный и централизованный способ сообщить процессору, что знак запятой является десятичным разделителем?