|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Grouping Issue?
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








