RE: [xsl] Xslt 2 stripping out non-numbers

Subject: RE: [xsl] Xslt 2 stripping out non-numbers
From: "Ross, Douglas" <DRoss@xxxxxxxxxx>
Date: Tue, 19 Apr 2005 13:26:17 -0400
I use the java hook to call the replaceAll method on the String object.
Then I pass in reg ex to remove unwanted text:

declare namespace:
	xmlns:java="java:java.lang.String"

then use replaceAll method:

<xsl:variable name="clean" select="java:replaceAll(string($input),
'[0-9]', '')" />

There may be an easier (non java function) way but this works in Saxon
and Xalan. Note the namespaces may differ.

Douglas Ross
Developer, HTML UI Framework
Kronos
www.kronos.com


-----Original Message-----
From: Jim Neff [mailto:jneff@xxxxxxxxxxxxxxx]
Sent: Tuesday, April 19, 2005 1:23 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Xslt 2 stripping out non-numbers

Greetings,

I need to strip out non-numerical values from a string.

Here is a sample input value:  TUV0062

And what I want is :  0062  (or just 62)

Here's what I've tried so far:

for $i in tokenize(state_license_number, '\.') return xs:string( if
(string(number(.)) = 'NaN') then '' else $i)

But this does not work.  I get an empty string as a result

If I do this:

for $i in tokenize(state_license_number, '\.') return xs:string($i)

I get the whole string back so I know my "for" statement is returning
something.

What is the correct way to do this using XSLT 2?

Thanks,
Jim

Current Thread