This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

loop in creation of table


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() &lt;=$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@unisvr.net.tw



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]