Subject: Re: Generating Test Data From: Mike Brown <mike@xxxxxxxx> Date: Mon, 12 Jun 2000 21:52:08 -0600 (MDT) |
> I would like to use XSL to generate a test XML document from a > 'template' XML document that contains a root and a fixed set of child > elements and attributes. The resultant test document would contain a > dummy root element and an arbitary number of 'copies' of the content of > the template document. I wish to pass a parameter into the > transformation or use an attribute of the root element of the template > document to control the number of copies created. Passing the paramter > and making a single copy I'm sure I can handle. > > However is there a way of setting up a loop (sorry to use this word) in > the style sheet to allow this 'cloning' to occur ? Given a parameter $num that is the number of copies you want, just have the template that matches the root node call a named template, passing it $num. The named template should look like this: <xsl:template name="MakinCopies"> <xsl:param name="$num"/> <xsl:if test="number($num) > 0"> <xsl:copy-of select="."/> <xsl:if test="number($num) > 1"> <xsl:call-template name="MakinCopies"> <xsl:with-param name="num" select="number($num) - 1"/> </xsl:call-template> </xsl:if> </xsl:if> </xsl:template> It's not really a loop; it's recursion. The number() tests aren't necessary if you're careful about how you create the first $num; just being extra careful. - Mike ____________________________________________________________________ Mike J. Brown, software engineer at My XML/XSL resources: webb.net in Denver, Colorado, USA http://www.skew.org/xml/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Generating Test Data, Nick Browne | Thread | Where text contains() any of a list, Steve Muench |
Newby question, Bruce McGuire | Date | RE: several questions on XML to HTM, H . vanderLinden |
Month |