XSLT函数小结(一)

这几天做了两三个Mapping,看到那些数据眼花缭乱的,现总结一下格式化数字:(XSLT 2.0)

1.最简单的直接通过format-number(num,'#.000')形式就能解决问题

 

2.在<xsl:stylesheet>元素下声明元素<xsl:decimal-format decimal-separator="." grouping-separator="/" digit="*" />,decimal-separator指定小数点(在EDI等文件中,小数点有的用.表示,有的用逗号表示,标准不一样),grouping-separator指定小数分组的标志,digit表示在格式中数字用哪种符号代替;然后再结合format-number()函数处理。例如format-number(num,'****/***/**.000')

 

3.取一个数字的左边m位和右边n位,这种情况比较麻烦,需要用到字符串函数

concat(substring(num,1,m),substring(num,string-length(num)-n+1))

 

4.一个数字的右边3位为小数位,在末尾加一个"0"

(如果要保证小数点为dot则可以通过<xsl:decimal-format>元素保证

首先判断结点是否可用,boolean(node()),然后用format-number函数格式化

format-number(num div 1000,'#.0000')

 

5.添加n位前导0。思路是先用足够位数的0连接,然后取出固定位,例如一个最多5位的数(该数是一个必选项),要在前添加3个0:substring(concat('0000',num),string-length(num)-4)

 

 

你可能感兴趣的:(format-number,edi,XSLT)