Re: [xsl] Looping a node in XSLT

Subject: Re: [xsl] Looping a node in XSLT
From: Abel Braaksma <>
Date: Wed, 07 Mar 2007 01:23:35 +0100
Senthilkumaravelan Krishnanatham wrote:
I have tried the same and hard time figuring out the syntax.

Considering your code piece below, you will never be able to run it, because it contains compile time errors. If you copied my example, you could've figured out the syntax:

1 to $n

instead of:


Other things in your code that worry me a bit is why you use a call-template for something that only selects all the text nodes from the input, this can be refactored away. There is no matching template for "customer", is that on purpose? I can recommend you the XSLT books by Michael Kay and the beginners book by Jenni Tennison, they provide excellent coverage of some of the key concepts of XSLT (which is to many of us a not-so-trivial language to grasp when we first try it).

Something like this perhaps does what you want:

<xsl:template match="products">
   <xsl:copy><xsl:template select="customer" /></xsl:copy>
<xsl:template match="customer">
   <xsl:copy-of select="for 1 to 10 return ." />

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="";>
<xsl:output method="xml" omit-xml-declaration="no" indent="yes" encoding="UTF-8" />
<xsl:template match="/products">
<xsl:call-template name="COPY">
<xsl:template name="COPY">
<xsl:variable name="n" select="10" />
<xsl:for-each select="1to$n">
<xsl:apply-templates select="//customer/*"/>

Current Thread