|
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 |