select=format-number($totalSales, ##,###) : number format « XSLT stylesheet « XML Tutorial






File: Data.xml


File: Transform.xslt

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text"/>

  <xsl:decimal-format name="f1"   decimal-separator=":"           grouping-separator="/"/>
  <xsl:decimal-format name="f2"   infinity="Really, really big"   NaN="[not a number]"/>

  <xsl:template match="/">
    
    <xsl:variable name="totalSales" select="sum(/report/brand/units)"/>
    <xsl:for-each select="report/brand">
      <xsl:value-of select="name"/>
      <xsl:text>: &#xA;    </xsl:text>
      <xsl:value-of select="format-number(units, '##,###')"/>
      <xsl:text> bars sold, </xsl:text>
      <xsl:value-of select="format-number(units div $totalSales, '##%')"/>
      <xsl:text> of all sales.</xsl:text>
      <xsl:text>&#xA;</xsl:text>
      <xsl:text>&#xA;</xsl:text>
    </xsl:for-each> 
    <xsl:text>Total sales: </xsl:text>
    <xsl:value-of select="format-number($totalSales, '##,###')"/>
    <xsl:text> bars.&#xA;</xsl:text>
  </xsl:template>

</xsl:stylesheet>

Output:

Total sales:  bars.








5.14.number format
5.14.1.format number after calculation
5.14.2.select=format-number(catalog/item/price * 0.60, ###.00)
5.14.3.format-number(999999999.9999, '#.###,##')
5.14.4.format-number(123456.9999, '#,###.##', 'us_default') : 123,457
5.14.5.format-number(number(1) div 0, '#.#')
5.14.6.format-number(number(1) div 0, '#.#', 'other_options')
5.14.7.format-number(number('blue') * number('orange'), '#')
5.14.8.format-number(number('blue') * number('orange'), '#', 'other_options')
5.14.9.format-number(42, '#!','hash_mark')
5.14.10.select=format-number($totalSales, ##,###)
5.14.11.format-number(1528.3, '#/###:00', 'f1')
5.14.12.format-number(1 div 0, '###,###.00', 'f2')
5.14.13.format-number(blue div orange, '#.##', 'f2')
5.14.14.formatting of multilevel numbers