|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: quick table layout problem
Hi
> Below is the xml for a table. Its a huge amount of code for
> a very small
> amount of data... but thats beside the point (I have no
> control over the
> input) What I need is the table to be drawn using the widths
> specified by
> the colwidth attributes of the colspec.
Use
<xsl:template name="tableHead">
<xsl:for-each select="//table//thead//entry">
<col width="{ancestor::colspec[@colname =
current()/@colname][1]/@colwidth}" />
</xsl:for-each>
<xsl:for-each select="//table//thead//entry">
<th>
<xsl:value-of select="."/>
</th>
</xsl:for-each>
</xsl:template>
It should output col elements with the specified width attribute. It's
really un-efficient way of doing it because of all the the //s , so you
should probably rewrite it so that it will only have to go throught the
entry elements once. Also, match pattern such as "//tbody/row[position()
mod 2 = 0]" would probably be better rewritten to something like
"tbody/row[position() mod 2 = 0]" - better yet,
<xsl:template match="row">
<tr>
<xsl:for-each select="entry">
<td>
<xsl:if test="position() mod 2 = 0">
<xsl:attribute name="class">table_row_color</xsl:attribute>
</xsl:if>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:template>
Hope this helps,
Santtu
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








