RE: [xsl] XSLT1.0 and wildcards

Subject: RE: [xsl] XSLT1.0 and wildcards
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 3 Oct 2006 08:54:34 +0100
> For example The address line is like this: melkweg 51a.
> 
> This means I have to map this like this:  street = melkweg, 
> number = 51, extension = a
>     I wanted to use the  'substring-before' function to 
> filter out the street, and 'substring-after' function to 
> filter out the extension. I could use the number 51 for this 
> but that's only the case for this line. Can i use some kind 
> of wildcard character say '*' that defines that It just has 
> to be a number.
> Are there such wildcards, and/or is there a better way to do this?
> 

XSLT 1.0 is very limited for this kind of string manipulation, but you can
often achieve what you need with the help of translate(). For example,
translate($x, '012345789', '9999999999') will convert all digits to 9s,
which makes  it possible to use substring-before(translate($x, '012345789',
'9999999999'), '9') to find the text that precedes the first digit. Or given
the string "51a", you can extract the "a" using translate($x, '0123456789',
'').

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

Current Thread