我有一个数字如:457342137但我想将其显示为457 342 137.
我有这样的事情:
<xsl:template match="klient/@numer_telefonu">
<xsl:variable name="numer" select="." />
<xsl:value-of select="format-number($numer, '### ### ###')" />
</xsl:template>
但它不起作用。
答案 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”(前导零被剥离)。您应该使用字符串函数来操作字符串。