RE: simple grouping question

Subject: RE: simple grouping question
From: Ben Robb <Ben@xxxxxxxxxx>
Date: Mon, 18 Sep 2000 16:02:31 +0100
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


Current Thread