Yes, I did one of these a few years ago. You will want to use the modulo
operator on the value of the context node's position(). Here's how it's done:
<xsl:template match="/">
<table>
<xsl:for-each select="items/item">
<xsl:choose>
<xsl:when test="position() mod 4 = 1">
<tr>
<td><xsl:value-of select="."/></td>
<td><xsl:value-of select="following-sibling::*[1]"/></td>
<td><xsl:value-of select="following-sibling::*[2]"/></td>
<td><xsl:value-of select="following-sibling::*[3]"/></td>
</tr>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</table>
</xsl:template
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email
-----Original Message-----
From: Andreas Lindahl <andreas(_dot_)lindahl(_at_)framfab(_dot_)se>
Sent: Fri, 5 Mar 2004 13:10:32 +0100
To: "'xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com'"
<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Subject: [xsl] Generating HTML table
Hi
My XML file looks like this:
<items>
<item>Item 1</item>
<item>Item 2</item>
<item>Item 3</item>
<item>Item 4</item>
<item>Item 5</item>
<item>Item 6</item>
...
</item>
And I would like to create an HTML table which looks like this, from my XML
file:
<table>
<tr>
<td>
Item 1
Item 5
</td>
<td>
Item 2
Item 6
</td>
<td>
Item 3
</td>
<td>
Item 4
</td>
</tr>
</table>
I.e. four columns which are "populated" with items horisontally.
Is this possible to do with XSLT?
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list