Re: [xsl] recognize character entities

Subject: Re: [xsl] recognize character entities
From: "andrew welch" <andrew.j.welch@xxxxxxxxx>
Date: Thu, 31 Aug 2006 09:43:30 +0100
On 8/31/06, David Carlisle <davidc@xxxxxxxxx> wrote:

> strange is that the matches() regex allows only decimal values as > range 592 represents here hex 0250

The regex syntax doesn't allow any numeric references in decimal or hex.
You have to use a character. However before being passed to XPath, teh
attribute is parsed by an XML parser so you can use any XML syntax for
that character, named entity references (as defined in a dtd) teh
character in the file's encoding,  decimal character references (as you
have) or hex character references, which would use the & # x 0 2 5 0 ;

match="*[matches(substing(text()[1], 1, 1), '[&#592;-&#99999;]')]">

It's probably simpler to just restrict the regex to the first character,
rather than use substring:

match="*[matches(., '^[&#592;-&#99999;]')]">

Sorry I've joined this thread late, but if you want to check if a character is within a certain range there's always string-to-codepoints() .... it may well be faster.


Current Thread