使用XSLT以XML格式化数字

时间:2018-02-02 05:50:03

标签: xslt xslt-1.0 xslt-2.0

我的输入xml文件中有一个数字,如0.20但我想通过xslt在输出xml文件中更改为0,20(逗号而不是点)。我该如何格式化这个数字?我不想使用任何模板。

3 个答案:

答案 0 :(得分:0)

为什么不向我们提供输入的示例,例如数字和使用的模板在哪里?展示XML和XSLT将很容易理解您的问题:

如果它出现在replace ()

这样的标记中,您通常可以使用<tag>0.20</tag>
<xsl:value-of select="replace(tag,'\.',','"/>

答案 1 :(得分:0)

根据您使用的XSLT版本,有不同的方法。

假设您在元素中具有值0.20,如下所示

<element>0.20</element>

XSLT 1.0 提供translate()函数,允许使用以下语句从字符串中替换字符。

<xsl:value-of select="translate(element,'.',',')" />

XSLT 2.0 提供replace()功能来执行相同操作。但是,在使用XSLT 2.0时,最好转义period/dot,因为dot表示当前节点的值,并可能导致错误的解释。

<xsl:value-of select="replace(element,'\.',',')" />

答案 2 :(得分:0)

使用format-number($x, '0.00', 'european')

结合
<xsl:decimal-format name="european" decimal-separator="," grouping-separator="."/>