Subject: RE: 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/
|