【发布时间】:2011-02-13 21:02:27
【问题描述】:
有一个任务是使用 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。当我尝试转换值时:
<xsl:value-of select="format-number(number(depth/@value)), '##.##'"/>
我得到 NaN,因为 XSLT 处理器在将属性值转换为数字时不将逗号视为小数分隔符。
当我手动将源字符串从“小数逗号”格式“翻译”为“小数点”格式时,它会有所帮助
<xsl:value-of select="format-number(number(translate(depth/@value, ',', '.'))), '##.##'"/>
但它看起来很丑。
有没有更正确和集中的方式告诉处理器逗号是小数分隔符?
【问题讨论】: