Re: [xsl] xsl table

Subject: Re: [xsl] xsl table
From: Andreas Peter <info@xxxxxxxxxx>
Date: Thu, 14 Jun 2007 09:13:53 +0200
Quoting "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>:

At 2007-06-13 09:38 +0200, Andreas Peter wrote:
And this is my xsl file:

<xsl:template match="table">
<fo:block xsl:use-attribute-sets="kursinfo">
<fo:table table-layout="{$table.layout}" width="{$table.width}">
<xsl:apply-templates select="tr" />

<xsl:template match="tr">
<xsl:param name="pos_tr" select="position()" />

The above line can be removed.

<xsl:apply-templates select="td" />

Change the above to:

  <xsl:apply-templates select="td">
     <xsl:with-param name="pos_tr" select="position()"/>


<xsl:template match="td">


<xsl:param name="pos_t4"/>

<xsl:param name="pos_td" select="position()" />

That can be <xsl:variable/>

<fo:table-cell column-number="1" width="{$table.colwidth1}">

Is $table.colwidth1 a global?

<fo:block><xsl:value-of select="//tr[$pos_tr]/td[$pos_td]"/>

That seems strange to me ... not sure why you are selecting from the very top of the document ... and it would seem that just select="." would obtain the same construct. And if you have more than one table, the values will always be selected from the first table.

I've answered you how you can use variables, but I'm not sure why you
are using variables.


I want to use a variable for the <tr>-position as well as for the

Can you explain why you think this is necessary?

How can I manage it to use the variable from <tr> when
I match <td>? If I want to parse the document an error occurs saying
"variable with name pos_tr could not be founded..."

The scope of a variable is only the following siblings and their descendants. At the point where you made reference to $pos_tr there were no ancestors with a preceding sibling declaration of the variable. I've added that with the parameter.

I hope this helps.

. . . . . . . . . . . . . Ken

Upcoming hands-on training(Europe 2007): XSL-FO Jun 11; UBL Oct 01
World-wide corporate, govt. & user group XML, XSL and UBL training
RSS feeds:     publicly-available developer resources and training
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05
Legal business disclaimers:

Thanks to Ken and Florent for helping me. Using xsl:with-param was
completely new to me, as so many things in xsl :-( Just a beginner...

The creation of the table now works but as Ken said only for one table
because I match from the very beginning. But how can I change this? I
want to match every table entry inside the document.

Thanks for helping me learning xsl...


Current Thread