Re: [xsl] Generate N elements and attribute values

Subject: Re: [xsl] Generate N elements and attribute values
From: "Kenny Bogoe (BogoeMD)" <kenny@xxxxxxxxx>
Date: Sun, 18 Jul 2004 20:23:08 +0200
Hi Wendell,

Yes, you are absolutely right - I create the tr elements inside the template
that creates the td elements, but I am not so sure exactly what to do with
your example template, though it makes sense to do as you suggest.
Btw...where do you define the max-count param?

This is my recursive template (tr) with the inside recursive template (td):

<xsl:template name="tr">
   <xsl:param name="x"/>
   <xsl:param name="y"/>

<tr no="{$y}">
    <xsl:call-template name="td">
    <xsl:with-param name="x" select="//Tabel/@cols"/>
    <xsl:with-param name="y" select="0"/>
    </xsl:call-template>
    </tr>
  
<xsl:if test="$x > 1">
    <xsl:call-template name="tr">
     <xsl:with-param name="x" select="$x - 1"/>
     <xsl:with-param name="y" select="$y + 1"/>

    </xsl:call-template>
   </xsl:if>
</xsl:template>

<xsl:template name="td">
   <xsl:param name="x"/>
   <xsl:param name="y"/>


<xsl:element name="td">
     <xsl:attribute name="name"><!--this is where I need the values as
specified--></xsl:attribute>
</xsl:element>

   
   <xsl:if test="$x > 1">
    <xsl:call-template name="td">
     <xsl:with-param name="x" select="$x - 1"/>
     <xsl:with-param name="y" select="$y + 1"/>

    </xsl:call-template>
   </xsl:if>
</xsl:template>


Hope you can help me a bit more...Thanks in advance.
Kenny


> Hi Kenny,
> 
> Presumably the recursive template that creates the three td elements is
> inside the template that creates the tr elements. (I don't know how else
> you'd do it. ;-)
> 
> If so, each time the "inner" template is called (by an iteration of the
> "outer" template), you can pass a parameter through to carry the count of
> the outer iteration.
> 
> Does that make sense?
> 
> <xsl:template name="outer">
>    <xsl:param name="count" select="0"/>
>    ....
>    <xsl:call-template name="inner">
>      <xsl:with-param name="outer-count" select="$count"/>
>    </xsl:call-template>
>    <xsl:if test="$count &lt; $max-count)">
>      <xsl:call-template name="outer">
>        <xsl:with-param name="count" select="$count + 1"/>
>      </xsl:call-template>
>    </xsl:if>
> </xsl:template>
> 
> I hope I understood the question....
> 
> Cheers,
> Wendell
> 
> At 02:50 PM 7/16/2004, you wrote:
>> I have already posted a question on how to generate dynamic attribute values
>> within a recursive template, but I have to admit that I got a bit confused
>> when reading my own posting, so I retry with a simplified version of my
>> problem.
>> 
>> A recursive template is generating N=4 <tr> and another inline recursive
>> template is generating n=3 <td> and so far I have no problems. But when it
>> comes to the attribute values of <td name="?"/> I really do not know what to
>> do since the @name of <td> is generated on the fly and after all <tr> are
>> generated. As shown in the result tree below the @name of <td> always
>> follows the @no of <tr>.
>> 
>> So my simple question is how to generate @name values on the fly?
>> 
>> 
>> This is the result tree I need:
>> 
>> <tr no="0">
>>     <td name="0"/>
>>     <td name="0"/>
>>     <td name="0"/>
>> </tr>
>> <tr no="1">
>>     <td name="1"/>
>>     <td name="1"/>
>>     <td name="1"/>
>> </tr>
>> <tr no="2">
>>     <td name="2"/>
>>     <td name="2"/>
>>     <td name="2"/>
>> </tr>
>> <tr no="3">
>>     <td name="3"/>
>>     <td name="3"/>
>>     <td name="3"/>
>> </tr>
>> 
>> 
>> Thanks,
>> Kenny Bogoe
> 
> 
> ======================================================================
> Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
> Mulberry Technologies, Inc.                http://www.mulberrytech.com
> 17 West Jefferson Street                    Direct Phone: 301/315-9635
> Suite 207                                          Phone: 301/315-9631
> Rockville, MD  20850                                 Fax: 301/315-8285
> ----------------------------------------------------------------------
>    Mulberry Technologies: A Consultancy Specializing in SGML and XML
> ======================================================================

Current Thread