This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

AW: Formatting of numbers, dynamically


Hello,

i applied the sugestions to format the numbers dynamically with the
following source :

<root>
    <number minor_unit="2">1.126</number>
    <number minor_unit="2">1.000</number>
    <number minor_unit="2">0.120</number>
    <number minor_unit="2">12999999999</number>
 </root>

and i get the output:

#,##0.00
1.13
#,##0.00
1.00
#,##0.00
0.12
#,##0.00
12,999,999,999.00
 

I have two questions about it:

1.How can i convert it to following number format
12.999.999.999,00
(exchanging point with comma)
 
2. How can i elimante from the output these 
#,##0.00

Please excuse my insufficient knowledge about xslt. 

Thanks,

Hans Braumuller
Networking Artist
http://crosses.net



> -----Ursprungliche Nachricht-----
> Von: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]Im Auftrag von David B.
> Bitton
> Gesendet: Dienstag, 12. Marz 2002 22:40
> An: xsl-list@lists.mulberrytech.com
> Betreff: Re: [xsl] Formatting of numbers, dynamically
> 
> 
> I modified the code slightly:
> 
> <xsl:variable name="format-string">
> 	<xsl:text>#,##0</xsl:text>
> 	<xsl:choose>
> 		<xsl:when test="$currency_code/@minor_unit > 0">
> 			<xsl:text>.</xsl:text>
> 			<xsl:call-template name="minor_unit">
> 				<xsl:with-param 
> name="minor_unit" select="$currency_code/@minor_unit"/>
> 			</xsl:call-template>
> 		</xsl:when>
> 	</xsl:choose>
> </xsl:variable>
> 
> I just added the xsl:choose because I was getting a decimal 
> point when minor_unit was zero (for Yen for example).
> Thanks again, and if you are ever in NYC, I owe you a beer.
> 
> On Mon, Mar 11, 2002 at 11:21:26PM +0100, Joerg Heinicke wrote:
> > Here we need again recursive template: counting down the 
> @minor_unit, for
> > every processing of the template 'minor_unit' one '0'.
> > 
> > the XML
> > 
> > <root>
> >     <number minor_unit="3">1.123</number>
> >     <number minor_unit="2">1.000</number>
> >     <number minor_unit="4">0.120</number>
> >     <number minor_unit="3">12</number>
> > </root>
> > 
> > the XSL:
> > <xsl:template match="number">
> >     <xsl:variable name="format-string">
> >         <xsl:text>#,##0.</xsl:text>
> >         <xsl:call-template name="minor_unit">
> >             <xsl:with-param name="minor_unit" select="@minor_unit"/>
> >         </xsl:call-template>
> >     </xsl:variable>
> >     <xsl:value-of select="$format-string"/><br/>
> >     <xsl:value-of select="format-number(., $format-string)"/><br/>
> > </xsl:template>
> > 
> > <xsl:template name="minor_unit">
> >     <xsl:param name="minor_unit" select="2"/>
> >     <xsl:text>0</xsl:text>
> >     <xsl:if test="$minor_unit > 1">
> >         <xsl:call-template name="minor_unit">
> >             <xsl:with-param name="minor_unit" 
> select="$minor_unit - 1"/>
> >         </xsl:call-template>
> >     </xsl:if>
> > </xsl:template>
> > 
> > the output:
> > #,##0.000
> > 1.123
> > #,##0.00
> > 1.00
> > #,##0.0000
> > 0.1200
> > #,##0.000
> > 12.000
> > 
> > Regards,
> > 
> > Joerg
> > 
> > > I am current using format-number($node, '#,##0.00') for formatting
> > currency.
> > > We are now implementing foreign currencies into our 
> application.  For
> > every
> > > transaction, I have an element, CurrencyCode, which 
> contains the ISO
> > > currencyCode and an attribute @minor_unit which tells me 
> how many digits
> > > follow the decimal seperator.  My question is how I can 
> dynamically build
> > > the formatting string.
> > >
> > > I was reading this morning in the March 2002 issue of 
> MSDN magazine about
> > > how XSLT is a "Functional programming language", and therefore
> > xsl:variable
> > > entities are "not really variables, rather 
> runtime-assigned constants"
> > > because once they are assigned, the values cannot be 
> changed.  So, this
> > lead
> > > me to start thinking about how I could wrap an 
> xsl:for-each with the
> > > xsl:variable element to produce my output.  What I don't 
> know if how to
> > > obtain functionality like:
> > >
> > > for(i=0;i<=@minor_unit;i++){ ... };
> > >
> > > I do not want to use an enbedded JScript solution because 
> I want the XSL
> > to
> > > be portable (namely between MSXML and Xalan).  So, how 
> would I construct
> > the
> > > @select attribute in the xsl:for-each to just loop a 
> predetermined number
> > of
> > > times?
> > >
> > > --
> > >
> > > David B. Bitton
> > > david@codenoevil.com
> > > www.codenoevil.com
> > >
> > > Diversa ab illis virtute valemus.
> > 
> > 
> >  XSL-List info and archive:  
http://www.mulberrytech.com/xsl/xsl-list

-- 

David B. Bitton
david@codenoevil.com

Diversa ab illis virtute valemus.

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]