XSLT无内置数字转英文函数,需用递归模板实现:先定义0–19和20–90映射表,再按三位分组(百十个),递归处理并添加thousand/million等量词。

XSLT 本身没有内置函数直接把数字转成英文单词(比如 123 → "one hundred twenty-three"),但可以通过递归模板手动实现。核心思路是:把数字按位拆解(个、十、百、千等),分别映射为对应英文单词,再组合拼接。
基础数字映射表
先定义 0–19 和 20–90 的英文单词,用 <variable></variable> 或外部 XML 映射文件存储。例如:
<xsl:variable name="ones"> <word n="0">zero</word> <word n="1">one</word> <word n="2">two</word> ... <word n="19">nineteen</word> </xsl:variable> <p><xsl:variable name="tens"> <word n="2">twenty</word> <word n="3">thirty</word> ... <word n="9">ninety</word> </xsl:variable>
登录后复制
递归处理三位一组
英文读数习惯按“百、十、个”为一组(如 123,456 → "one hundred twenty-three thousand four hundred fifty-six"),所以先将数字转为字符串,再从高位开始每三位切分,用递归模板分别处理每组,并加上 thousand、million 等量词。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~