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 |