Re: [xsl] Generate N elements

Subject: Re: [xsl] Generate N elements
From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx>
Date: Thu, 8 Jul 2004 06:57:38 -0700 (PDT)
Hi Kenny,
  The following modified stylesheet does something
like that -

<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="/Root">
  <Root>
    <xsl:call-template name="generateTag">
	<xsl:with-param name="x" select="data"/>
	<xsl:with-param name="y" select="10"/>
    </xsl:call-template>
  </Root>
</xsl:template>

<xsl:template name="generateTag">
   <xsl:param name="x"/>
   <xsl:param name="y"/>
   <info value="{$y}"/>
   
   <xsl:if test="$x > 1">
      <xsl:call-template name="generateTag">
	 <xsl:with-param name="x" select="$x - 1"/>
	 <xsl:with-param name="y" select="$y + 10"/>
      </xsl:call-template>
   </xsl:if>
</xsl:template>

</xsl:stylesheet>

Regards,
Mukul

--- "Kenny Bogoe (BogoeMD)" <kenny@xxxxxxxxx> wrote:
> Thanks, Mukul. Thanks, Mike.
> 
> Will it be complicated to get N=4 elements with
> different attribute values
> in the result tree, like:
> 
> <Root>
>     <info value="10"/>
>     <info value="20"/>
>     <info value="30"/>
>     <info value="40"/>
> </Root>
> 
> (attribute values are calculated on the fly as well,
> like)
> 
> Best regards,
> Kenny
> 
> 
> 
> > Hi Kenny,
> >   The following recursive stylesheet does this -
> > 
> > <?xml version="1.0"?>
> > <xsl:stylesheet
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> > version="1.0">
> >   
> > <xsl:output method="xml" indent="yes" />
> >   
> > <xsl:template match="/Root">
> >   <Root>
> >     <xsl:call-template name="generateTag">
> >       <xsl:with-param name="x" select="data" />
> >     </xsl:call-template>
> >   </Root>  
> > </xsl:template>
> >   
> > <xsl:template name="generateTag">
> >   <xsl:param name="x" />
> >   <info/>
> >   <xsl:if test="$x > 1">
> >     <xsl:call-template name="generateTag">
> >        <xsl:with-param name="x" select="$x - 1" />
> >     </xsl:call-template>
> >   </xsl:if>
> > </xsl:template>
> >  
> > </xsl:stylesheet>
> > 
> > Regards,
> > Mukul
> > 
> > --- "Kenny Bogoe (BogoeMD)" <kenny@xxxxxxxxx>
> wrote:
> >> Hi,
> >> 
> >> This is probably very simple... I need to
> generate N
> >> elements on the fly. N
> >> is a number in my source xml.
> >> 
> >> Source xml:
> >> <Root>
> >>     <data>4</data>
> >> </Root>
> >> 
> >> Result xml:
> >> 
> >> <Root>
> >>     <info/>
> >>     <info/>
> >>     <info/>
> >>     <info/>
> >> </Root>
> >> 
> >> 
> >> Thanks,
> >> Kenny Bogoe
> > 
> > 
> > 
> > 
> > __________________________________
> > Do you Yahoo!?
> > Yahoo! Mail - 50x more storage than other
> providers!
> > http://promotions.yahoo.com/new_mail
> 
> 



	
		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 

Current Thread