Subject: loop in creation of table
From: "Yang" <sfyang@xxxxxxxxxxxxx>
Date: Thu, 27 Sep 2001 13:08:20 +0800
|
Hi, Praveen
I would like to point you to the reference
http://sources.redhat.com/ml/xsl-list/2001-07/msg01845.html
where Dimitre have presented a more generic approach for the type of
problem.
Since his xslt is to written for table presentation row by row,
the xslt for table which data shown column by column is modified as
following;
** xslt list ***
<xsl:output method="html"/>
<xsl:param name="numCols" select="4"/>
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/">
<table>
<xsl:apply-templates mode="multiColumn"
select="/parent-of-subsystem_id/subsystem_id[position() <=$numCols]">
<xsl:with-param name="numCols" select="$numCols"/>
<xsl:with-param name="nodes"
select="/parent-of-subsystem_id/subsystem_id"/>
</xsl:apply-templates>
</table>
</xsl:template>
<xsl:template mode="multiColumn" match="subsystem_id">
<xsl:param name="numCols" select="1"/>
<xsl:param name="nodes" select="/.."/>
<xsl:variable name="vCurPosition" select="position()"/>
<xsl:variable name="vmode" select="position() mod $numCols"/>
<xsl:choose>
<xsl:when test="$vCurPosition mod 2 = 1">
<tr bgcolor="aqua">
<xsl:apply-templates mode="normal"
select="$nodes[position() >= $vCurPosition and
position() mod $numCols = $vmode]" />
</tr>
</xsl:when>
<xsl:when test="$vCurPosition mod 2 = 0">
<tr bgcolor="red">
<xsl:apply-templates mode="normal"
select="$nodes[position() >= $vCurPosition and
position() mod $numCols= $vmode]"
/>
</tr>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="subsystem_id" mode="normal">
<td><xsl:value-of select="."/></td>
</xsl:template>
</xsl:stylesheet>
Cheers,
Sun-fu Yang
sfyang@xxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|