Subject: RE: [xsl] concat all items in a sequence From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 30 Aug 2005 15:34:18 +0100 |
> I'm using the following: > > contains(elem, val) > > It's possible that 'elem' can be a sequence of more than one item. > > The way I've code around this is to use string-join with an empty > string as one of the arguments: > > contains(string-join(for $i in elem return $i, ''), val) > > Is there a better way? 1. The expression for $i in elem return $i can be rewritten as elem So you get contains(string-join(elem, ''), val) 2. Do you want to match substrings that cross item boundaries, e.g. do you want contains(('red', 'green'), 'edgr') to be true? If so, I don't think you can do better than the above. If you don't want this, then apply contains to each string in the sequence separately: exists(elem[contains(., val)]) Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] concat all items in a sequenc, andrew welch | Thread | Re: [xsl] concat all items in a seq, andrew welch |
[xsl] Using a variable as part of t, Khorasani, Houman | Date | RE: [xsl] Using a variable as part , cknell |
Month |