Re: [xsl] how to add a </tr> on every position() mod 4 = 0 ?

Subject: Re: [xsl] how to add a </tr> on every position() mod 4 = 0 ?
From: "Thomas Sandor" <tsandor@xxxxxxxxxxx>
Date: Mon, 11 Nov 2002 13:06:20 +0100
hi,

one more question. I'm using as in the example my bar[position()] for a
parameter, so when listing I had a number before : 1..9, but now I have
1..4, plus I have a in foo a position() 1..3. I could count the current
position if I could see somehow the foo position in <xsl:template
match="bar"/> but xsl:variable is not overwritten. do you know any method to
find the current bar position() num in the full list?

Thomas

----- Original Message -----
From: <Jarno.Elovirta@xxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, November 11, 2002 10:11
Subject: RE: [xsl] how to add a </tr> on every position() mod 4 = 0 ?


> Hi,
>
> > I have a list in xml, and want to show them in a 4-column
> > table (in at least
> > 2 rows). so I would like to add a closing </tr> tag to every <xsl:if
> > test="position() mod 4 = 0"> but I cannot write a simple
> > closing </tr> tag
> > here, because parser says it's an error. (However a <tr/>
> > works for output,
> > but it's not the clean and sytanctically the best way)
>
> Remember, you're not writing tags with XSLT, but rather building a tree
(see <http://www.w3.org/TR/xpath#data-model>). Try something in the lines of
>
> <xsl:template match="foo">
>   <table>
>     <xsl:for-each select="bar[position() mod 4 = 1]">
>       <tr>
>         <xsl:apply-templates select=". | following-sibling::bar[position()
&lt; 4]" />
>       </tr>
>     </xsl:for-each>
>   </table>
> </xsl:template>
>
> Cheers,
>
> Jarno - Wumpscut: Wreath of Barbs (Album mix)
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread