Subject: RE: [xsl] selecting from sequences From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 18 Dec 2008 16:36:17 -0000 |
Although it's clear from these responses that there are solutions to these requirements, I have always felt the need for higher order operators to achieve this effect: $seq[>>EXP] everything in $seq after the first item that satisfies EXP $seq[>>=EXP] everything in $seq after and including -"- $seq[<<EXP] everything in $seq before the first item that satisfies EXP $seq[<<=EXP] everything in $seq before and including -"- They're available in Saxon and EXSLT to some extent in the form xx:leading() and xx:trailing(). Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Vladimir Nesterovsky [mailto:vladimir@xxxxxxxxxxxxxxxxxxxx] > Sent: 18 December 2008 16:06 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] selecting from sequences > > > - the position of the first b? > > <!-- 0 means that there is no value. --> <xsl:variable > name="index" as="xs:integer" select=" > ( > for $i in 1 to count($seq) return > $seq[$i][self::b], > 0 > )[1]"/> > > > - everything before the first b > > <xsl:sequence select="subsequence($seq, 1, $index)"/> > > > - everything from the first b to the end > > > <xsl:sequence select="subsequence($seq, $index)"/> > > Vladimir Nesterovsky > http://www.nesterovsky-bros.com > > ----- Original Message ----- > From: "Ruud Grosmann" <r.grosmann@xxxxxx> > To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > Sent: Thursday, December 18, 2008 17:28 > Subject: [xsl] selecting from sequences > > > > hi group, > > > > I have question which must have been on this list before, > but I can't > > find the answer. > > > > In my style sheet I make a selection of the elements and > pass that to a > > template. In that template I can reference this sequence as $seq. > > > > Selecting from $seq appears to be not that easy, because I > can't use > > axes. Axes have a document scope whereas I want to do > something within > > the sequence. > > If for example $seq contains elements a, b, c, b, e: > > > > how do I select > > - everything before the first b > > - everything from the first b to the end > > - the position of the first b? > > > > As $seq[self::b][1]/preceding-sibling::* is not good > because it possibly > > selects element outside the sequence, but are > preceding-siblings in the > > document. > > > > Thanks in advance, > > > > Ruud
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] selecting from sequences, Vladimir Nesterovsky | Thread | Re: [xsl] selecting from sequences, Liam Quin |
Re: [xsl] selecting from sequences, Vladimir Nesterovsky | Date | Re: [xsl] selecting from sequences, Liam Quin |
Month |