Welcome to WebmasterWorld Guest from 184.108.40.206 , register , free tools , login , search , pro membership , help , library , announcements , recent posts , open posts Become a Pro Member
Format xsl results into 4-across rows? donok msg:3965188 7:41 am on Aug 4, 2009 (gmt 0) 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 msg:3965352 2:27 pm on Aug 4, 2009 (gmt 0)
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.
<xsl:template name="twocolumns"> <xsl:for-each select="people[position() mod 4 = 1]"> <tr> <xsl:variable name="others" select="following-sibling::option[position() < 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>