Subject: Re: [xsl] compact code using loop From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Wed, 19 Mar 2008 09:01:46 +0000 |
On 19/03/2008, Mansour <mansour77@xxxxxxxxx> wrote: > I have repetitive code in my xslt. This code produces a list and does > not depend on the input xml. I am wondering if there is a way to > minimize this code. I can do it through for-each, but the element are in > the xslt file and not in the input xml, so I can not use the 'select='. > For example, I need to generate this code regardless of the input xml: > > <item> > <type>type1</type> > <value>val1</value> > </item> > <item> > <type>type2</type> > <value>val2</value> > </item> > <item> > <type>type3</type> > <value>val3</value> > </item> > > > Of course I can use this directly in my xsl file, but there's more item. > So the code is too long. And there are more tags for the item. If 2.0 you can do: <xsl:for-each select="1 to 3"> <item> <type>type<xsl:value-of select="."/> ... In 1.0 you really need a recursive template: <xsl:call-template name="generate"> <xsl:with-param name="count" select="3"/> </ <xsl:template name="generate"> <xsl:param name="count"/> <xsl:if test="$count > 0"> <item> <type>type<xsl:value-of select="$count"/> </ </ <xsl:call-template name="generate"> <xsl:with-param name="count" select="$count - 1"/> </ </xsl:if> </xsl:template> cheers -- Andrew Welch http://andrewjwelch.com Kernow: http://kernowforsaxon.sf.net/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] compact code using loop, Mukul Gandhi | Thread | Re: [xsl] compact code using loop, Wendell Piez |
Re: [xsl] compact code using loop, Mukul Gandhi | Date | RE: [xsl] push-pull, Michael Kay |
Month |