在XSLT 1.0中将前导零添加到负数

时间:2013-10-14 10:01:38

标签: xslt

如何在XSLT 1.0中格式化数字以下。输入有时是正数,有时是负数。

输入:

-4
-1
2

输出:

00000-4
00000-1
0000002

1 个答案:

答案 0 :(得分:4)

XSLT提供的format-number function可能会对您有所帮助。

format-number(theNumber, '0000000')

会为0000002提供2,为-0000004提供-4。但是如果你真的想在负面情况下将前导零置于减号之前,那么最简单的方法就是简单地将整个事物视为字符串操作而不是数字格式。定义变量

<xsl:variable name="zeros" select="'0000000'" />

然后说出类似

的内容
concat(substring($zeros, string-length(theNumber)+1), theNumber)

substring位计算要添加的前导零数,例如对于-4,它将从第三个字符开始采用$zeros的子字符串,即五个零。