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

Strange grouping behavior

Subject: Strange grouping behavior
From: Adam Van Den Hoven <Adam.Hoven@xxxxxxxxxxxx>
Date: Thu, 3 May 2001 12:18:44 -0700
reportparameter
I have the following XML:
<report>
   <header>
      <title>Test Header1</title>
      <creationdate>20010405</creationdate>
      <parameter name="Start Date">20001201</parameter>
      <parameter name="End Date">20001201</parameter>
      <parameter name="Property">val1</parameter>
      <parameter name="Property">val2</parameter>
      <parameter name="Property">val3</parameter>
      <parameter name="Property">val4</parameter>
      <parameter name="Property">val5</parameter>
      <parameter name="Platform">Web1</parameter>
      <parameter name="Platform">Web2</parameter>
      <parameter name="Platform">Web3</parameter>
      <parameter name="Platform">Web4</parameter>
      <parameter name="Platform">Web5</parameter>
      <parameter name="Platform">Web6</parameter>
   </header>
</report>

To which I am applying the following template:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="html" encoding="Windows-1252" indent="yes"/>
   <xsl:key name="ReportParam" match="parameter[@name]" use="@name" />
   <xsl:template match="/">
	<html><body>
		<xsl:apply-templates select="/report/header" />
	</body></html>
   </xsl:template>
   <xsl:template match="header">
      <table>
         <xsl:apply-templates
select="parameter[generate-id(.)=generate-id(key('ReportParam', @name))]" />
      </table>
   </xsl:template>
   <xsl:template match="parameter">
      <tr class="reportparameter">
      <xsl:if test="not(preceding-sibling::parameter[@name =
current()/@name])">
         <td>
         <xsl:attribute name="rowspan">
            <xsl:value-of select="count(key('ReportParam', @name))" />
         </xsl:attribute>
         <xsl:value-of select="@name" />
            </td>
         </xsl:if>
         <td><xsl:value-of select="normalize-space(.)" /></td>
         <td><xsl:value-of select="count(following-sibling::parameter[@name
= current()/@name])" /></td>
      </tr>
      <xsl:apply-templates select="following-sibling::parameter[@name =
current()/@name]" />
   </xsl:template>
</xsl:stylesheet>

Produces the following output (I'm running from cooktop but using the MSXML
parser setting):
<html>
<body>
<table>
<tr class="reportparameter"><td rowspan="1">Start
Date</td><td>20001201</td><td>0</td></tr>
<tr class="reportparameter"><td rowspan="1">End
Date</td><td>20001201</td><td>0</td></tr>
<tr class="reportparameter"><td
rowspan="5">Property</td><td>val1</td><td>4</td></tr>
<tr class="reportparameter"><td>val2</td><td>3</td></tr>
<tr class="reportparameter"><td>val3</td><td>2</td></tr>
<tr class="reportparameter"><td>val4</td><td>1</td></tr>
<tr class="reportparameter"><td>val5</td><td>0</td></tr>
<tr class="reportparameter"><td>val5</td><td>0</td></tr>
<tr class="reportparameter"><td>val4</td><td>1</td></tr>
<tr class="reportparameter"><td>val5</td><td>0</td></tr>
<tr class="reportparameter"><td>val5</td><td>0</td></tr>
<tr class="reportparameter"><td>val3</td><td>2</td></tr>
<tr class="reportparameter"><td>val4</td><td>1</td></tr>
<tr class="reportparameter"><td>val5</td><td>0</td></tr>
<tr class="reportparameter"><td>val5</td><td>0</td></tr>
<tr class="reportparameter"><td>val4</td><td>1</td></tr>
<tr class="reportparameter"><td>val5</td><td>0</td></tr>
<tr class="reportparameter"><td>val5</td><td>0</td></tr>
<tr class="reportparameter"><td
rowspan="6">Platform</td><td>Web1</td><td>5</td></tr>
<tr class="reportparameter"><td>Web2</td><td>4</td></tr>
<tr class="reportparameter"><td>Web3</td><td>3</td></tr>
<tr class="reportparameter"><td>Web4</td><td>2</td></tr>
<tr class="reportparameter"><td>Web5</td><td>1</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web5</td><td>1</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web4</td><td>2</td></tr>
<tr class="reportparameter"><td>Web5</td><td>1</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web5</td><td>1</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web3</td><td>3</td></tr>
<tr class="reportparameter"><td>Web4</td><td>2</td></tr>
<tr class="reportparameter"><td>Web5</td><td>1</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web5</td><td>1</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web4</td><td>2</td></tr>
<tr class="reportparameter"><td>Web5</td><td>1</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web5</td><td>1</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
<tr class="reportparameter"><td>Web6</td><td>0</td></tr>
</table>
</body></html>

Ok, I reformatted the output but that is not the problem. 

The problem is that if I have more than 2 items in a group, I get this
behaviour. Any ideas?

> Adam van den Hoven
> Internet Application Developer
> Blue Zone
> tel. 604.685.4310 ext 260
> fax. 604.685.4391
> Blue Zone makes you interactive.(tm) http://www.bluezone.net/
> 

 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.