Re: [xsl] concat all items in a sequence

Subject: Re: [xsl] concat all items in a sequence
From: andrew welch <andrew.j.welch@xxxxxxxxx>
Date: Wed, 31 Aug 2005 14:23:42 +0100
On 8/31/05, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> > Also, string-join(text, '') with the empty quotes feels like a bit of
> > an abuse of the function - why wasn't there a single argument version
> > for this purpose?
>
> Perhaps because it's not obvious whether the default separator should be ""
> or " " (a single space), so we make the user supply it explicitly.

Ahh of course - I've fallen for this before... I always think the two
arguments of string-join get joined, not that the second argument is a
separator.  Arg1 sequence, arg2 string (repeat several times to self).


On 8/31/05, David Carlisle <davidc@xxxxxxxxx> wrote:
>
>   <xsl:value-of select="count(.|/root/node[contains(text,
>   'def')]/preceding-sibling::node)"/>
>
>   This complains because one <node> contains two <text> elements,
>
>
> <xsl:value-of
select="1+count(/root/node[text[contains(.,'def')]]/preceding-sibling::node)"
/>

hmmm, too obvious :) I will stick to some and satisfies (unless theres
a good reason no to)


>   Regarding true()=elem/contains(...) it's also really good using the
>   slash operator :) but I can't see how to squeeze it in here... (why
>   the true()= part david?)
>
>
> You wouldn't need to squeeze it, it would just fit, but the version
> michael (I think) suggested using text[contains(. is better.
> However,
> elem/contains(...)  is a sequence of booleans and you want to know
> if any of them is true. as always if you want to know if any item
> in a sequence is equal to something you canm se = and it does an
> implicit quantification over the sequence.

Ok, makes sense now, thanks.

Current Thread