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]
Other format: [Raw text]

Re: Dynamically building a HTML table from variable row data


how about:

<xsl:template match="BLOCK">

>   <table border="10">

           <xsl:apply-templates select="row"/>
       
>   </table>
>  </xsl:template>

<xsl:template match="ROW">

<tr>
    <td><xsl:value-of select="A"/></td>
    <td><xsl:value-of select="B"/></td>
    <td><xsl:value-of select="C"/></td>
    <td><xsl:value-of select="D"/></td>
    <td><xsl:value-of select="E"/></td>
</tr>

 </xsl:template>



----- Original Message ----- 
From: "Michael Leditschke" <ammd@bigpond.net.au>
To: <XSL-List@lists.mulberrytech.com>
Sent: Saturday, December 15, 2001 8:25 AM
Subject: [xsl] Dynamically building a HTML table from variable row data


> I am attempting to populate an HTML table
> where the column names are generated by the
> set of element names on each row. Not all
> elements occur on all rows.
> 
> My problem is thus to dynamically work out
> the total set of columns (using the element
> names) and dynamically position each piece
> of data in the correct column.
> 
> For example, assume XML looks like
> 
> <BLOCK>
>   <ROW>
>     <A>1</A>
>     <B>2</B>
>   </ROW>
>   <ROW>
>     <A>9</A>
>     <B>3</B>
>     <C>4</C>
>   </ROW>
>   <ROW>
>     <A>5</A>
>     <D>6</D>
>     <E>7</E>
>   </ROW>
> <BLOCK>
> 
> I'd like to end up with a table something like
> 
> A  B  C  D  E
> 1  2
> 9  3  4
> 5        6  7
> 
> 
> Thus far I have code something like
> 
> <xsl:template match="BLOCK">
>   <xsl:variable name="ColumnNames"
> select="ROW/*[not(local-name()=local-name(preceding::ROW/*)))]"/>
>   <table border="10">
>     <tr>
>       <xsl:for-each select="$ColumnNames">
>         <th>
>           <xsl:value-of select="local-name()"/>
>         </th>
>       </xsl:for-each>
>     </tr>
>   </table>
>  </xsl:template>
> 
> I know its wrong because the local-name function is going
> to process the first node only. So it handles the <A>
> element ok but not any of the others.
> 
> I'm trying to follow the
> examples I've seen of grouping but most seem to be based
> on element/attribute content rather than element names.
> 
> Various wild and whacky schemes have come to mind but
> before I looked for a zebra, I thought I'd check if anyone
> knew of a horse.
> 
> Any pointers much appreciated.
> 
> Regards
> Michael
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 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]