Subject: Re: [xsl] Grooping and Sorting problem From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 28 Mar 2002 15:31:44 -0500 |
> Hi, i want to make a HTML table with 5 column and n rows with a XML like > this: > > <root> > <test number="3"> > <test number="1"> > <test number="4"> > <test number="2"> > <test number="5"> > ... > <test number="100"> > </root> > > so i want to make a table with 5 column and n rows, at every 5 element > i want a new row. > > BUT THE PROBLEM IS: I NEED TO HAVE ALL ELEMENT SORTED!!! > > How can i do this?
t:\ftemp>type fred.xml <root> <test number="3"/> <test number="1"/> <test number="4"/> <test number="2"/> <test number="5"/> <test number="8"/> <test number="9"/> <test number="13"/> <test number="21"/> <test number="34"/> <test number="12"/> <test number="45"/> <test number="100"/> </root>
t:\ftemp>type fred-int.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="/root"> <root> <xsl:for-each select="test"> <xsl:sort select="@number" data-type="number"/> <xsl:copy-of select="."/> </xsl:for-each> </root> </xsl:template>
t:\ftemp>type fred.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="/"> <html> <body> <xsl:apply-templates/> </body> </html> </xsl:template>
<xsl:template match="root"> <table> <xsl:for-each select="test[1]"><!--establish the current node list--> <xsl:call-template name="do-a-row"/> </xsl:for-each> </table> </xsl:template>
<!--containerize the groups of columns in a single row--> <xsl:template name="do-a-row"> <tr> <xsl:call-template name="do-a-col"/> </tr> <xsl:for-each select="following-sibling::test[5]"> <xsl:call-template name="do-a-row"/> </xsl:for-each> </xsl:template>
<xsl:template name="do-a-col"> <xsl:param name="index" select="5"/> <xsl:if test="$index"> <td> <xsl:value-of select="@number"/> </td> <xsl:for-each select="following-sibling::test[1]"> <xsl:call-template name="do-a-col"> <xsl:with-param name="index" select="$index - 1"/> </xsl:call-template> </xsl:for-each> </xsl:if> </xsl:template>
t:\ftemp>type fred.htm <html> <body> <table> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr> <tr> <td>8</td> <td>9</td> <td>12</td> <td>13</td> <td>21</td> </tr> <tr> <td>34</td> <td>45</td> <td>100</td> </tr> </table> </body> </html>
-- Upcoming: 3-days XSLT/XPath and/or 2-days XSLFO: June 17-21, 2002 - : 3-days XML Information Modeling: July 31-August 2, 2002
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 (Fax:-0995) ISBN 0-13-065196-6 Definitive XSLT & XPath ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath ISBN 1-894049-07-1 Practical Formatting Using XSLFO XSL/XML/DSSSL/SGML/OmniMark services, books(electronic, printed), articles, training(instructor-live,Internet-live,web/CD,licensed) Next public training: 2002-04-08,09,10,11,05-06,07,09,10,13,20, - 06-04,07,10,11,13,14,17,20,07-31
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Grooping and Sorting prob, Frédéric Tremblay | Thread | RE: [xsl] Grooping and Sorting prob, McNally, David |
RE: [xsl] Grooping and Sorting prob, Frédéric Tremblay | Date | Re: [xsl] table cell data on same p, J.Pietschmann |
Month |