RE: [xsl] Xpath patern question

Subject: RE: [xsl] Xpath patern question
From: Hélder Sousa <Helder.Sousa@xxxxxx>
Date: Mon, 10 Mar 2003 17:34:37 -0000
I had think about that solution but my date can be like "1/1/2003" and I can't change it to " 1/ 1/2003".. So that doesn't work. I can put some more conditions in [...] but in this case it's better to use the script..
The regular expression would be the best way..
Tks anyway :)


-----Original Message-----
From: Jeni Tennison [mailto:jeni@xxxxxxxxxxxxxxxx] 
Sent: segunda-feira, 10 de Março de 2003 17:19
To: Hélder Sousa
Cc: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Xpath patern question


Hi Hélder,

> Imagine that I want all elements "campo" with value matching a 
> determinate patern. For example, I want all elements "campo" whose 
> value is like "2 digits, a separator("/" or "-"), 2 digits, a 
> separator("/" or "-"), 4 digits". This is a date!

Try something like:

  /xxx/yyyy/campo[number(substring(., 1, 2)) and
                  (substring(., 2, 1) = '/' or
                   substring(., 2, 1) = '-') and
                  number(substring(., 4, 2)) and
                  (substring(., 2, 1) = '/' or
                   substring(., 2, 1) = '-') and
                  number(substring(., 7, 4))]

This will allow things like " 3/ 7/   4", which you might not want;
you could disallow them by adding a "not(contains(., ' '))" clause.

Note that XPath 2.0 will allow you to use a regular expression here, so you will be able to do:

  /xxx/yyyy/campo[matches(., '\d{2}[-/]\d{2}[-/]\d{4}')]

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread