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