| Subject: RE: [xsl] Grouping elements in table using xsl:fo From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Wed, 16 Jun 2004 17:46:37 +0100 | 
The main aspect I am having trouble with is getting each unique <B> on a separate row in the table with each <z> grouped under the relevant <B>. I can only get each <B> on the same row and so cannot group under these.
I would like to create a row for each <z> in a table grouped by the value of <B>. For each different value of <B> there would be a heading and on the rows below each heading each <z> which has the same <B> value.
eg.
A C D E gg1 ff hh ii jj pp qq rr ss gg2 kk ll mm nn ff hh ii jj gg3 tt uu vv ww
T:\ftemp>type james.xml <x> <y> <z> <A>ff</A> <B>gg1</B> <C>hh</C> <D>ii</D> <E>jj</E> </z> </y> <y> <z> <A>kk</A> <B>gg2</B> <C>ll</C> <D>mm</D> <E>nn</E> </z> </y> <y> <z> <A>tt</A> <B>gg3</B> <C>uu</C> <D>vv</D> <E>ww</E> </z> </y> <y> <z> <A>pp</A> <B>gg1</B> <C>qq</C> <D>rr</D> <E>ss</E> </z> </y> <y> <z> <A>ff</A> <B>gg2</B> <C>hh</C> <D>ii</D> <E>jj</E> </z> </y> </x>
T:\ftemp>type james.xsl <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
  <table border="1">
    <tr>
      <td></td><td>A</td><td>C</td><td>D</td><td>E</td>
    </tr>
    <xsl:for-each select="/x/y/z[generate-id(.)=
                                 generate-id(key('entries',B))]">
      <tr><td><xsl:value-of select="B"/></td></tr>
      <xsl:for-each select="key('entries',B)">
        <tr>
          <td></td>
          <td><xsl:value-of select="A"/></td>
          <td><xsl:value-of select="C"/></td>
          <td><xsl:value-of select="D"/></td>
          <td><xsl:value-of select="E"/></td>
        </tr>
      </xsl:for-each>
    </xsl:for-each>
  </table>
</xsl:template></xsl:stylesheet> T:\ftemp>saxon -o james.htm james.xml james.xsl
T:\ftemp>type james.htm
<?xml version="1.0" encoding="utf-8"?>
<table border="1">
   <tr>
      <td/>
      <td>A</td>
      <td>C</td>
      <td>D</td>
      <td>E</td>
   </tr>
   <tr>
      <td>gg1</td>
   </tr>
   <tr>
      <td/>
      <td>ff</td>
      <td>hh</td>
      <td>ii</td>
      <td>jj</td>
   </tr>
   <tr>
      <td/>
      <td>pp</td>
      <td>qq</td>
      <td>rr</td>
      <td>ss</td>
   </tr>
   <tr>
      <td>gg2</td>
   </tr>
   <tr>
      <td/>
      <td>kk</td>
      <td>ll</td>
      <td>mm</td>
      <td>nn</td>
   </tr>
   <tr>
      <td/>
      <td>ff</td>
      <td>hh</td>
      <td>ii</td>
      <td>jj</td>
   </tr>
   <tr>
      <td>gg3</td>
   </tr>
   <tr>
      <td/>
      <td>tt</td>
      <td>uu</td>
      <td>vv</td>
      <td>ww</td>
   </tr>
</table>-- Public training 3 days XSLT & 2 days XSL-FO: Phoenix,AZ 2004-08-23 World-wide on-site corporate, govt. & user group XML/XSL training. G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| RE: [xsl] Grouping elements in tabl, James Steven | Thread | declare the charset by an output el, Markus Hanel | 
| Create separate rows in xsl:fo tabl, James Steven | Date | RE: [xsl] Re: Saxon + xalan - error, Josh Canfield | 
| Month |