[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: RE: [xsl] HTML Table


Subject: RE: RE: [xsl] HTML Table
From: v.kavanagh@xxxxxxxxxxxx
Date: Thu, 4 Sep 2003 20:30:56 +0000

Jarno,

Many thanks that was exactly want I wanted, here is my version:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
	<xsl:template match="root">    
		<TABLE border="1">      
			<TR>        
				<xsl:for-each select="box">          
					<TH>            
						<xsl:value-of select="@boxref" />          
					</TH>        
				</xsl:for-each>      
			</TR>      
			<xsl:for-each select="box">        
				<xsl:sort select="count(tin)" data-type="number" order="descending"/>        
				<xsl:if test="position() = 1">          
					<xsl:for-each select="tin">            
						<xsl:variable name="position" select="position()"/>            
						<TR>              
							<xsl:for-each select="../../box">                
								<TD>                
									<xsl:variable name="tinno" select="tin[$position]/@tinid"/>                
									<xsl:variable name="cartno" select="tin[$position]/@cartonid"/>				
									<xsl:variable name="boxno" select="@boxid"/>				
									<xsl:variable name="car" select="'car'"/>				
									<xsl:variable name="tin" select="'tin'"/>				
									<xsl:variable name="comma" select="'&#44;'"/>               
									<xsl:if test="tin[$position]/@tinid">                  
										<xsl:value-of select="@tinno"/>&#160;
										<input type="image" name="removetin" value="remove" src="images/cross.ico" alt="Remove" onClick="DeleteTin('{@boxno}','{$tinno}','{$tin}');return false;"></input>				
									</xsl:if>				
									<xsl:if test="tin[$position]/@cartonid">                  
										<xsl:value-of select="$cartno"/>&#160;
										<input type="image" name="removetin" value="remove" src="images/cross.ico" alt="Remove" onClick="DeleteTin('{$boxno}','{$cartno}','{$car}');return false;"></input>				
									</xsl:if>                
								</TD>              
							</xsl:for-each>            
						</TR>          
					</xsl:for-each>        
				</xsl:if>      
			</xsl:for-each>    
		</TABLE>  
	</xsl:template>
</xsl:stylesheet>

Despite scouring the web for days, I could not find many useful articles on dynamic HTML creation, are there any sites that are particularly geared towards this?

Once again many thanks,

Vince.

> 
> From: Jarno.Elovirta@xxxxxxxxx
> Date: 2003/09/04 Thu AM 06:35:24 GMT
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> Subject: RE: RE: [xsl] HTML Table
> 
> Hi,
> 
> You want something in the lines of
> 
>   <xsl:template match="root">
>     <TABLE>
>       <TR>
>         <xsl:for-each select="box">
>           <TH>
>             <xsl:value-of select="@boxref" />
>           </TH>
>         </xsl:for-each>
>       </TR>
>       <xsl:for-each select="box">
>         <xsl:sort select="count(tin)" data-type="number" order="descending"/>
>         <xsl:if test="position() = 1">
>           <xsl:for-each select="tin">
>             <xsl:variable name="position" select="position()"/>
>             <TR>
>               <xsl:for-each select="../../box">
>                 <TD>
>                   <xsl:value-of select="tin[$position]/@tinid"/>
>                 </TD>
>               </xsl:for-each>
>             </TR>
>           </xsl:for-each>
>         </xsl:if>
>       </xsl:for-each>
>     </TABLE>
>   </xsl:template>
> 
> I.e. first process the head, then get the max number of tin children in a box so you know how many rows you need to create, and then loop through the box elements using the tin that is of the "corresponding index".
> 
> Cheers,
> 
> Jarno - Bruderschaft: Forever (remix by Feindflug feat. Aeroflot)
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 

-----------------------------------------
Email provided by http://www.ntlhome.com/



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



Current Thread