xsl的数字格式的空格

时间:2013-12-14 13:58:51

标签: xslt number-formatting

我有一个数字如:457342137但我想将其显示为457 342 137.

我有这样的事情:

<xsl:template match="klient/@numer_telefonu">
        <xsl:variable name="numer" select="." />
        <xsl:value-of select="format-number($numer, '###&nbsp;###&nbsp;###')" />
    </xsl:template>

但它不起作用。

2 个答案:

答案 0 :(得分:3)

如果您想使用非标准的“分组”分隔符,首先需要在格式命令中定义要使用的符号,如下所示:

<xsl:decimal-format name="spaces" grouping-separator=" " />

然后,您可以在命令本身中引用此格式,如下所示:

<xsl:value-of select="format-number($numer, '# ###', 'spaces')" />

有关十进制格式的更多信息,请访问http://www.w3.org/TR/xslt#format-number

答案 1 :(得分:3)

电话号码是字符串,而不是号码,您不应尝试将其格式化为一个。从技术上讲,你可以这样做:

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

在您的示例中实现所需的结果。但是,给定“数字”,例如“057342137”,结果将是“57 342 137”(前导零被剥离)。您应该使用字符串函数来操作字符串。

相关问题