Re: [xsl] Detecting table columns with XSL-FO

Subject: Re: [xsl] Detecting table columns with XSL-FO
From: "andrew welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 2 Aug 2006 09:57:03 +0100
On 8/2/06, Miranda Wageman <mwageman@xxxxxxxxxxx> wrote:
Hi,

I have searched long for this but cannot seem to get a straight answer.

We are trying to output tables in XSL-FO, but I do not seem to be able to
easily find the table row with the maximum number of cells within a table,
so that I can specify how many <fo:table-column/> items should be added.
Cells that span columns or rows have colspan and rowspan attributes in their
tags.

Is there any way to loop through the rows within a table to find the row
with the maximum number of cells? The looping methods I have found seem to
only deal with a set number of reiterations whereas with our tables we don't
know which row has the most cells.

Thank you very much for any pointers in the right direction - right now I
don't even know where to start anymore.

If you are generating your XSL-FO using XSLT 1.0 then the usual way is to select all <tr>'s and sort them by the count of their <td>'s, and then pick the first:

http://www.dpawson.co.uk/xsl/sect2/N7450.html#d9845e601

If you are using XSLT 2.0 then you can use the max() function, eg:

<xsl:variable name="maxCells" select="max(//tr/count(td))"/>

cheers
andrew

Current Thread