|
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 |