xsl-list
[Top] [All Lists]

Re: How to make a loop ?

2004-07-28 04:05:24
Hi Alain,
you can do something like this:

<xsl:variable name="n-rows" select="5"/>

<xsl:template match="/">
  <html>
    <head>...</head>
    <body>
      <table>
        <tr>
          <xsl:call-template name="td-recursive"/>
        </tr>
      </table>
    </body>
  </html>
</xsl:template>

<xsl:template name="td-recursive">
  <xsl:param name="index" select="1"/>
  <td>
    <xsl:value-of select="info[$index]"/>
  </td>
  <xsl:if test="$index &lt; $n-rows">
    <xsl:call-template name="td-recursive">
      <xsl:with-param name="index" select="$index + 1"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

HTH,
Anton Triest

<quote from="Alain ROY">
  > Hi all,
  >
  > I want to make a table which may contain always the same number of rows 
(actually 5 but this can change later).
  > I want to fill this table with nodes values (let's say "info" for example). 
If there are less "info" nodes than the number of
rows
  > I chose for my table, I want to complete it with empty rows. If there are 
more "info" nodes than the number of rows of my table,
I
  > want to fill the table with only the n firsts info nodes values (n=number 
of rows of my table).
  > To fill my table I made a template for the rows. So I'd like to make a loop 
which will always call this template n times with a
  > parameter info[x] x=1..n
  >
  > What's the best way to do that ?
  >
  > Regards
  > AR
</quote>



<Prev in Thread] Current Thread [Next in Thread>