[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Format Phone number

Subject: RE: Format Phone number
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 21 Dec 2009 12:04:28 -0000
RE:  Format Phone number
There is actually a difference between XSLT 1.0 and XSLT 2.0 here. 

In XSLT 1.0, the specification of the picture format for format-number was
based on the specification of class DecimalFormat in Java JDK 1.1, which can
be found here:

http://sunsite.dcc.uchile.cl/java/docs/jdk1.1.8/docs/api/java.text.DecimalFo
rmat.html

It states:

The grouping separator is commonly used for thousands, but in some countries
for ten-thousands. The interval is a constant number of digits between the
grouping characters, such as 100,000,000 or 1,0000,0000. If you supply a
pattern with multiple grouping characters, the interval between the last one
and the end of the integer is the one that is used.

In XSLT 2.0, the specification is no longer based on the JDK, and the
interval between grouping separators is variable.

I would not recommend using format-number() for formatting phone numbers.
Use concat(substring(X, 1, 3), '-', substring(X, 4, 3), '-', ....).

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay 



> -----Original Message-----
> From: Anil Kumar Veeramalli [mailto:anil.v@xxxxxxxxxxxxxxxxxxxxx] 
> Sent: 21 December 2009 11:20
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  Format Phone number
> 
> yes there is a issue with even this approach.
> I am using XSL 1.0
> 1.
> 
> <xsl:decimal-format name="phonenumber" decimal-separator="-" 
> grouping-separator="&#x2011;"/> <xsl:template match="/">  
> <xsl:value-of select='format-number(1234567890 div 10000, 
> "#&#x2011;###-####", "phonenumber")' /> </xsl:template>
> 
> 
> its returning 123-456-789 which is wrong. (Zero is missing)
> 
> 2.
> <xsl:decimal-format name="staff" grouping-separator="-"/>
> 
>    <xsl:value-of select='format-number(9058957869, 
> "000-000-0000", "staff")'/>
> 
> its returning me 90-5895-7869 which is wrong.
> 
> required out put is 905-895-7869
> 
> Please suggest me the correct approach.
> 
> Thanks,
> Anil
> Michael Kay wrote:
> 
> >> thanks for your response. this is returing me  xx-xxxx-xxxx format 
> >> not xxx-xxx-xxxx.
> >>
> >> what could be the issue.
> >>     
> >
> > That looks like a bug in your XSLT processor.
> >
> > (But this is not the way I would recommend tackling this problem).
> >
> > Regards,
> >
> > Michael Kay
> > http://www.saxonica.com/
> > http://twitter.com/michaelhkay

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.