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]

Re: loop in creation of table


Hi, Dimitre

Thanks for your kindness to clean up my xslt redundant codes.
To make this piece of template  be more generic,
a variable **source** is to define the  xml-dependent tree structure.
So the template can be used without further touching, i.e.,
  <xsl:variable name="source" select="/parent-of-subsystem_id/subsystem_id"
/>
and use it as the value of select attribute.  Meantimes the element abbr *
is used
with match. The test seems ok.  But I wonder what might be missing from this
kind
of approach.

Thanks for your comment.

**   modified xslt part code  ***

  <xsl:variable name="source" select="/parent-of-subsystem_id/subsystem_id"
/>
<xsl:template match="/">
        <table>
        <xsl:apply-templates mode="multiColumn"  select="$source[position()
&lt;=$numCols]">

^^^^^^^
          <xsl:with-param name="numCols" select="$numCols"/>
          <xsl:with-param name="nodes" select="$source"/>

^^^^^^^
   </xsl:apply-templates>
        </table>
    </xsl:template>

    <xsl:template mode="multiColumn" match="*">
                                                                          ^
        <xsl:param name="numCols" select="1" />
        <xsl:param name="nodes" select="/.." />

        <xsl:variable name="vCurPosition" select="position()" />

        <xsl:variable name="vColour">
            <xsl:choose>
                <xsl:when test="$vCurPosition mod 2 = 1">aqua</xsl:when>
                <xsl:otherwise>red</xsl:otherwise>
            </xsl:choose>
        </xsl:variable>

        <tr bgcolor="{$vColour}">
            <xsl:apply-templates mode="normal"
                 select="$nodes[position() >= $vCurPosition
                     and (position() - $vCurPosition) mod $numCols = 0]" />
        </tr>
    </xsl:template>

    <xsl:template match="*" mode="normal">
                                       ^
        <td>
            <xsl:value-of select="." />
        </td>
    </xsl:template>

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]