[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Grouping Issue?

Subject: Re: Grouping Issue?
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Wed, 21 Aug 2002 10:30:21 +0100
a bit noddy
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() &lt; $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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.