【问题标题】:XSL vs Regionalisation/Internationalization Number FormatsXSL 与区域化/国际化数字格式
【发布时间】:2011-01-07 12:12:43
【问题描述】:

在格式化数字时,XSL 中是否内置了任何区域化支持?

目前我的基础 XML 包含英国/美国格式的数字,例如 54321.12345。我可以对此进行选择总和,以相同格式给我一个总数。我可以使用 format-number(54321.12345, '###,###.#####') 格式化数字给我 54,321.12345。

但是,当我希望它在我的机器上的不同区域设置上运行时,例如逗号分隔符为“。”的中欧国家/地区。和小数分隔符为“,”我想以这种方式格式化我的数字给我 54.321,12345。

在 XSL 中有没有很好的方法来做到这一点?

谢谢,

安德斯

【问题讨论】:

    标签: xslt internationalization numbers format


    【解决方案1】:

    来自http://www.w3.org/TR/xslt#format-number

    xsl:decimal-format 元素 声明一个十进制格式,它 控制一个解释 使用的格式模式 format-number函数。

    <!-- Category: top-level-element -->
    <xsl:decimal-format
      name = qname 
      decimal-separator = char 
      grouping-separator = char 
      infinity = string 
      minus-sign = char 
      NaN = string 
      percent = char 
      per-mille = char 
      zero-digit = char 
      digit = char 
      pattern-separator = char />
    

    【讨论】:

    【解决方案2】:

    我现在有以下 xsl:

    <!-- define number format to use -->
    <xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />
    
    <!-- format the number -->
    <xsl:value-of select="format-number(54321.12345,'###.##0,0000', 'european')"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多