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.

I did
<xsl:value-of select = "format-number(.,'#')" />
The outut was
  (125)4568956
It doesn’t  get rid of the braces.
Since "(123) 456-789" isn't a valid lexical representation for a number, I find it hard to believe you're getting that result with Xalan-J.

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