Re: [xsl] concat all items in a sequence

Subject: Re: [xsl] concat all items in a sequence
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 31 Aug 2005 06:41:27 +1000
Before there was XPath 2.0 there were the FXSL functions/templates:

  someTrue()

and

 someTrueP()


Cheers,
Dimitre Novatchev

On 8/31/05, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> > 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/
>
>


--
Cheers,
Dimitre Novatchev
---------------------------------------
Harry did not ask how Dumbledore knew; ...but Harry had long since
learned that bangs and smoke were more often the marks of ineptitude
than expertise.

Current Thread