|
Subject: Re: [xsl] string comparison From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Thu, 6 Jun 2002 12:13:25 +0100 |
Hi Dan,
> I have a document made up from a collection of addresses like this:
> <address-book>
> <contact>
> <name>Dan Corneanu Cornel</name>
> .....
> </contact>
> <contact>
> <name>Florin Corneanu</name>
> ......
> </contact>
> ........
> </address-book>
>
> How can I select all the contacts which contain the string
> "corneanu" or "Corneanu" or "cOrneanu" etc. in the <name>
> child? Is there something like the 'like()' function from SQL?
You can select all the contacts whose name contains 'Corneanu' with:
/address-book/contact[contains(name, 'Corneanu')]
As you no doubt know, though, contains() is a case-sensitive function.
You make it case-insensitive by converting the name (and the string
that you're testing with) to lowercase, which you can do with the
translate() function, as follows:
/address-book/contact
[contains(translate(name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'), 'corneanu')]
If you only test for 'Corneanu', you may as well just convert those
letters:
/address-book/contact
[contains(translate(name, 'CORNEAU',
'corneau'), 'corneanu')]
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] string comparison, Corneanu Dan | Thread | RE: [xsl] Why XSLT?, Michael Kay |
| [xsl] string comparison, Corneanu Dan | Date | RE: [xsl] string comparison, Andrew Welch |
| Month |