Welcome to WebmasterWorld Guest from 54.145.44.134

Forum Moderators: httpwebwitch

Message Too Old, No Replies

Format xsl results into 4-across rows?

     

donok

7:41 am on Aug 4, 2009 (gmt 0)

10+ Year Member



Sorry - a bit lost - REALLY new to xml and its friends...

I have an xsl file that is returning xml results formatted into a 220px wide rectangle. I want them to display 4-across and then start a new row.

This has to be simple, right? Do I do this in the php page, or the xsl page, or css...?

thanks for any help,

Don

httpwebwitch

2:27 pm on Aug 4, 2009 (gmt 0)

WebmasterWorld Administrator httpwebwitch is a WebmasterWorld Top Contributor of All Time 10+ Year Member



I'd do it in the XSL.

Here's a template that works by finding every 4th node, using position() and mod
Then it constructs a variable containing nodes from positions n, n+1, n+2, n+3
Then it loops through these and displays a <td> for each.

I hope it works. It might need a little debugging.
Cheers


<xsl:template name="twocolumns">
<xsl:for-each select="people[position() mod 4 = 1]">
<tr>
<xsl:variable name="others" select="following-sibling::option[position() &lt; 4]" />
<xsl:for-each select=".$others">
<td>
<xsl:value-of select="person' />
</td>
<xsl:if test="not($others)">
<td></td>
</xsl:if>
</xsl:if>
</tr>
</xsl:for-each>
</xsl:template>
 

Featured Threads

Hot Threads This Week

Hot Threads This Month