Subject: Re: [xsl] Column widths From: Gustaf Liljegren <gustafl@xxxxxxxxxx> Date: Sun, 23 Jun 2002 02:26:55 +0200 |
Mike Brown wrote: >Brackets indicate predicates. Think of them as filters, providing everything >to the left of them, for which everything inside them is true. Got it. Okay, here's a sample table: <table> <colgroup> <col width="30%"/> </colgroup> <colgroup> <col width="60%"/> <col width="10%"/> </colgroup> <tbody> <tr> <th>A header</th> <td>Some content here.</td> <td>Some more here.</td> </tr> </tbody> </table> For now, I assume there will always be equal amounts of table cells in a row as there are <col> elements. The result will look like this: <fo:table> <fo:table-body> <fo:table-row> <fo:table-cell width="30%">...</fo:table-cell> <fo:table-cell width="60%">...</fo:table-cell> <fo:table-cell width="10%">...</fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> Here's how the <td> template looks like. The problem is in the long XPath expressions: <xsl:template match="td"> <xsl:variable name="x" select="position()"/> <fo:table-cell xsl:use-attribute-sets="table-padding"> ... <xsl:if test="ancestor::table//col[$x]/attribute::width"> <xsl:attribute name="width"> <xsl:value-of select="ancestor::table//col[$x]/attribute::width"/> </xsl:attribute> </xsl:if> <fo:block> <xsl:apply-templates/> </fo:block> </fo:table-cell> </xsl:template> Gustaf XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Column widths, Mike Brown | Thread | Re: [xsl] Column widths, Joerg Heinicke |
[xsl] String Manipulation, Joel Konkle-Parker | Date | Re: [xsl] String Manipulation, Gustaf Liljegren |
Month |