RE: [xsl] Having same number of rows in table irrespective of number of data rows

Subject: RE: [xsl] Having same number of rows in table irrespective of number of data rows
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 12 Apr 2005 08:59:55 +0100
In XSLT 2.0 you can do

<xsl:for-each select="count(INITIALVALUES/INITIALVALUE)+1 to 5">
  <tr>...</tr>
</xsl:for-each>

In 1.0 the usual approach is to select the first N nodes of some dummy
node-set:

<xsl:for-each select="(//node())[position() &lt;= (5 -
count(INITIALVALUES/INITIALVALUE))]"

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Steve W [mailto:lsl@xxxxxxxxxxxxx] 
> Sent: 12 April 2005 07:58
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Having same number of rows in table 
> irrespective of number of data rows
> 
> I want to create a table that has a set number of rows in it. 
>  The XML has
> data in it to be shown in the table - in simple terms one 
> element of the XML
> for each row of the table.  The XML will only have an element 
> if there is
> data,  so if I have 3 data elements but I want 5 rows in the 
> table there
> will be 2 'missing' rows and I want to output these 2 rows 
> with some set
> html in it.
> 
> My template looks like this :
> 
> <table cellpadding="0" cellspacing="0" border="0" width="100%">
>     <xsl:for-each select="INITIALVALUES/INITIALVALUE">
>         <tr>
>             <td>
>                 <!-- some html ....  -->
>                 </td>
>             </tr>
>     </xsl:for-each>
>     <!-- add 'blank' rows to give constant number of rows in table -->
> </table>
> 
> Thanks
> 
> Steve

Current Thread