xsl-list
[Top] [All Lists]

Re: [xsl] xsl table

2007-06-13 16:15:30
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>