Subject: Re: [xsl] xsl table From: Andreas Peter <info@xxxxxxxxxx> Date: Thu, 14 Jun 2007 09:13:53 +0200 |
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}"> <fo:table-body> <xsl:apply-templates select="tr" /> </fo:table-body> </fo:table> </fo:block> </xsl:template>
<xsl:template match="tr"> <xsl:param name="pos_tr" select="position()" />
The above line can be removed.
<fo:table-row> <xsl:apply-templates select="td" />
Change the above to:
<xsl:apply-templates select="td"> <xsl:with-param name="pos_tr" select="position()"/> </xsl:apply-templates/>
</fo:table-row> </xsl:template>
<xsl:template match="td">
Add:
<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.
</fo:block></fo:table-cell> </xsl:template>
I want to use a variable for the <tr>-position as well as for the <td>-position.
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. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
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.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl table, G. Ken Holman | Thread | Re: [xsl] xsl table, G. Ken Holman |
[xsl] Comparison Table for XML file, Dan Johnson | Date | RE: [xsl] XSLT and XML Schema, Michael Kay |
Month |