This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: simple grouping question
- To: "'xsl-list at mulberrytech dot com'" <xsl-list at mulberrytech dot com>
- Subject: RE: simple grouping question
- From: Ben Robb <Ben at cScape dot com>
- Date: Mon, 18 Sep 2000 16:02:31 +0100
- Reply-To: xsl-list at mulberrytech dot com
Use xsl:if together with the preceding-sibling axis in XPath. For example:
<xsl:template match="event">
<tr>
<td>
<xsl:if test="date != preceding-sibling::event/date or position() =
1">
<xsl:value-of select="date"/>
</xsl:if>
</td>
<td>
<xsl:value-of select="name"/>
</td>
</tr>
</xsl:template>
Note that you have to have the position() = 1 as one of the conditions,
since otherwise you will loose the first line (where the date doesn't equal
'')
Alternatively, you could string it out to an xsl:choose statement, and omit
the postition() bit:
<xsl:template match="event">
<tr>
<td>
<xsl:choose>
<xsl:when test="date = preceding-sibling::event/date">
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="date"/>
</xsl:otherwise>
</td>
<td>
<xsl:value-of select="name"/>
</td>
</tr>
</xsl:template>
Hope this helps,
Ben
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list