如何在XSLT 1.0中格式化下面的数字。输入有时是正数,有时是负数。
输入:
-4
-1
2
Run Code Online (Sandbox Code Playgroud)
输出:
00000-4
00000-1
0000002
Run Code Online (Sandbox Code Playgroud)
XSLT提供的format-number功能可能会在这里为您提供帮助。
format-number(theNumber, '0000000')
Run Code Online (Sandbox Code Playgroud)
会给你0000002的2和-0000004为-4。但是,如果您确实确实想在负数情况下将前导零放在减号之前,那么最简单的方法是将整个内容视为字符串操作,而不是数字格式。定义一个变量
<xsl:variable name="zeros" select="'0000000'" />
Run Code Online (Sandbox Code Playgroud)
然后说些类似的话
concat(substring($zeros, string-length(theNumber)+1), theNumber)
Run Code Online (Sandbox Code Playgroud)
该substring位确定要添加多少个前导零,例如,-4它将$zeros从第三个字符开始取子串,即五个零。