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.