This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Grouping Issue?
- From: "Andrew Welch" <awelch at piper-group dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 21 Aug 2002 09:58:27 +0100
- Subject: RE: [xsl] Grouping Issue?
- Reply-to: xsl-list at lists dot mulberrytech dot com
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.
cheers
andrew
> -----Original Message-----
> From: Josh Campbell [mailto:josh@zype.co.nz]
> Sent: 21 August 2002 03:53
> To: XSL-List@lists.mulberrytech.com
> Subject: [xsl] Grouping Issue?
>
>
> I am trying to get the following XML to be presented in rows of 3
> months. The months are represented as headings with the dates listed
> underneath.
>
> I'm pretty sure it's a grouping issue but I can't get my head
> around how
> this works. Basically every 3 months I want to start a new row.
>
> <tripdates>
> <month name="October">
> <date>Wednesday 9th</date>
> <date>Thursday 10th</date>
> </month>
> <month name="November">
> <date>Saturday 2nd</date>
> <date>Sunday 3rd</date>
> </month>
> <month name="December">
> <date>Sunday 22nd</date>
> </month>
> <month name="January">
> <date>Sunday 22nd</date>
> </month>
> </tripdates>
>
> This is the XSL I've got to lay the months out but at the moment it's
> simply just putting them into one row.
>
> <xsl:template match="tripdates">
> <div class="tourrow">
> <xsl:for-each select="month">
> <div class="monthpos">
> <h3><xsl:value-of select="@name"/></h3>
> <xsl:for-each select="date">
> <div class="tourdate"><xsl:value-of
> select="."/></div>
> </xsl:for-each>
> </div>
> </xsl:for-each>
> </div>
> </xsl:template>
>
> Any ideas on this?
>
> Thanks
> Josh
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
>
>
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.381 / Virus Database: 214 - Release Date: 02/08/2002
>
>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.381 / Virus Database: 214 - Release Date: 02/08/2002
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list