[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
|