Mega Code Archive

 
Categories / XML Tutorial / XSLT StyleSheet
 

Format number after calculation

File: Data.xml <?xml version="1.0"?> <catalog>  <item id="SC-0001">   <maker>A</maker>   <description>B</description>   <size>L</size>   <price>120.00</price>   <currency>USD</currency>  </item> </catalog> File: Transform.xslt <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:output method="xml" indent="yes" />   <xsl:output doctype-system="catalog.dtd" />   <xsl:variable name="discount">0.70</xsl:variable>   <xsl:variable name="discountPrice"     select="format-number(catalog/item/price - (catalog/item/price) * $discount, '###.00')" />   <xsl:template match="catalog">     <xsl:copy>       <xsl:apply-templates select="item" />     </xsl:copy>   </xsl:template>   <xsl:template match="item">     <xsl:copy>       <xsl:copy-of select="@id" />       <xsl:copy-of select="maker|description|size|price" />       <discount>         <xsl:value-of select="$discount" />       </discount>       <discountPrice>         <xsl:value-of select="$discountPrice" />       </discountPrice>       <xsl:copy-of select="currency" />     </xsl:copy>   </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE catalog   SYSTEM "catalog.dtd"> <catalog>    <item id="SC-0001">       <maker>A</maker>       <description>B</description>       <size>L</size>       <price>120.00</price>       <discount>0.70</discount>       <discountPrice>36.00</discountPrice>       <currency>USD</currency>    </item> </catalog>