|
Subject: Re: [xsl] Grouping Issue? From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Wed, 21 Aug 2002 10:30:21 +0100 |
Andrew Welch wrote:
> You could try this, its a bit noddy and hard coded but if you are
> sure of your data it should be ok.
>
> First, select every third <month>
>
> <xsl:template match="tripdates">
> <xsl:apply-templates select="month[position() mod 3 = 1]"/>
> </xsl:template>
>
> Output a row of that <month> and the following two <month>s
>
> <xsl:template match="month">
> <tr>
> <xsl:apply-templates select="." mode="table"/>
> <xsl:apply-templates select="following-sibling::month[1]"
> mode="table"/>
> <xsl:apply-templates select="following-sibling::month[2]"
> mode="table"/>
> </tr>
> </xsl:template>
>
> Output the <td>'s for each <month>
> <xsl:template match="month" mode="table">
> <td><xsl:value-of select="."/></td>
> </xsl:template>
>
> It wouldnt be very hard to use a variable instead of hard coded
> value's - you would just need to modify the unmoded month template,
> probably with a call to a named template that would recursively
> apply-templates to the following-siblings. If you get stuck I can
> show you that.
It's not even that hard. Just apply templates to the following
siblings whose position() is less than $cols:
<xsl:variable name="cols" select="3" />
<xsl:template match="tripdates">
<xsl:apply-templates select="month[position() mod $cols = 1]"/>
</xsl:template>
<xsl:template match="month">
<tr>
<xsl:apply-templates mode="table"
select=". | following-sibling::month[position() < $cols]" />
</tr>
</xsl:template>
<xsl:template match="month" mode="table">
<td><xsl:value-of select="."/></td>
</xsl:template>
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Grouping Issue?, Andrew Welch | Thread | [xsl] SVG generation, Jarkko . Moilanen |
| RE: [xsl] Grouping Issue?, Andrew Welch | Date | RE: [xsl] document() function, DPawson |
| Month |