[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Using the count function to count the previous siblings in XLST 1.0


Subject: [xsl] Using the count function to count the previous siblings in XLST 1.0
From: "Marco Mastrocinque" <mmfive@xxxxxxxxxxxxxxx>
Date: Tue, 3 May 2005 19:57:25 +1000

Hi All,
       I have the following snippet of code. 

  <xsl:for-each select="company/division">
    <xsl:for-each select="employees/employee"> 		
	<xsl:sort select="OFFICE"/>
	<xsl:sort select="ENAME"/>
	  <tr>				
	    <td>
		<xsl:choose>
		   <xsl:when test="position() != last()">
			<xsl:value-of select="concat(' ', @EID, ', ', ENAME,
', ',OFFICE)"/>
		   </xsl:when>
		   <xsl:when test = "position() = last()">	
			<xsl:value-of select="concat(' ', @EID, ', ', ENAME,
', ',OFFICE)"/>
<xsl:text>&#xa;&#xa;&#xa;&#xa;Count is</xsl:text>
			<xsl:value-of select="count(employees/employee)"/>
</xsl:when>

	    </td>
</tr>
</xsl:for-each>	   
</xsl:for-each>

This works by displaying a whole series of data in a single column in a HTML
table. At the end of each employees/employee, with the last value in this
previously mentioned element output, I wan't to display the count of 
'count(employees/employee)'. It displays zero, because the system has
already cycled all the way trough them. I want to all the previous-siblings
plus the last one. Can it be done? I want the output to be,

Element 1 (First group)

Element 2

Element 3
Element 4 Count is 4

Element 1 (Second group)
Element 2
Element 3
Element 4
Element 5 Count is 5
Etc...

All this a SINGLE column of a HTML table.

Thanks Marco Mastrocinque


Current Thread