Andreas Peter wrote:
Hi
<xsl:template match="tr">
<xsl:param name="pos_tr" select="position()" />
<fo:table-row>
<xsl:apply-templates select="td" />
</fo:table-row>
</xsl:template>
<xsl:template match="td">
<xsl:param name="pos_td" select="position()" />
<fo:table-cell column-number="1" width="{$table.colwidth1}">
<fo:block><xsl:value-of select="//tr[$pos_tr]/td[$pos_td]"/>
</fo:block></fo:table-cell>
</xsl:template>
I want to use a variable for the <tr>-position as well as for the
<td>-position. 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..."
Variables are lexicaly scoped. If you want to use a variable in one
template from its caller, pass it with a parameter:
<xsl:template match="tr">
<fo:table-row>
<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">
<xsl:param name="pos_tr"/>
<xsl:param name="pos_td" select="position()"/>
<fo:table-cell column-number="1" width="{$table.colwidth1}">
<fo:block>
<xsl:value-of select="//tr[$pos_tr]/td[$pos_td]"/>
</fo:block>
</fo:table-cell>
</xsl:template>
Note you maybe want a variable instead of a parameter for $pos_td.
Regards,
--drkm
_____________________________________________________________________________
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--