Thank you David. This is a very useful addition to my
small but growing bag of tricks. 
 

-----Original Message-----
From: David Bertoni [mailto:[EMAIL PROTECTED]
Sent: Friday, May 16, 2008 1:43 PM
To: Alan Andrade; 'Xalan J Users List'
Subject: Re: I need to remove format


Alan Andrade wrote:
> Hi
> I have an input string as
> (123) 456-789
> And in the output I need
> 123456789
> 
> How do I do it in xslt.

<snip!>

You might be better served by the "double-translate" idiom.  Here's a 
sample stylesheet:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">

<xsl:output indent="yes" />

<xsl:template match="/">
   <out>
     <xsl:variable name="str" select="'(123) 456-789'" />
     <format-number>
       <xsl:value-of select="format-number($str,'#')" />
     </format-number>
     <double-translate>
       <xsl:value-of select="translate($str, translate($str, 
'123456789', ''), '')" />
     </double-translate>
   </out>
</xsl:template>

</xsl:stylesheet>

which produces:

<?xml version="1.0" encoding="UTF-8"?><out>
<format-number>NaN</format-number>
<double-translate>123456789</double-translate>
</out>

Dave

Reply via email to