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>: 
 </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>
</xsl:text>
<xsl:text>
</xsl:text>
</xsl:for-each>
<xsl:text>Total sales: </xsl:text>
<xsl:value-of select="format-number($totalSales, '##,###')"/>
<xsl:text> bars.
</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 |