Re: [xsl] round-robin template call

Subject: Re: [xsl] round-robin template call
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 05 Apr 2009 10:35:34 -0700
At 2009-04-05 19:09 +0200, Aragon Gouveia wrote:
G. Ken Holman wrote:
At 2009-04-05 18:47 +0200, Aragon Gouveia wrote:
I'm having difficulty figuring out how to perform something in XSLT 1.0. I want to be able to call a template at random points in an XSLT document, and each time the template is called it outputs a different version of a node.
Then pass a parameter value and trigger on the passed value.

The problem with that is if the stylesheet is edited and a new template call is inserted somewhere in the document, all the with-param tags below/above the insertion will have to be modified. This stylesheet will eventually end up having a number of included stylesheets which could/will all call the "makenode" template. I want to avoid passing parameters during the template call.

Then I can't think of a way to help you do this in a single pass. I can't see how to express your requirement in a functional manner. You'll probably have to rely on a particular XSLT processor's extension function for modifying a global state variable.


If, however, you have the opportunity to do this in two passes, then on the first pass just seed the result with placebos, then use a modified identity transform for the second pass in order to trigger on the placebos encountered and implement your algorithm accordingly.

Remember that you can implement two passes in one stylesheet in XSLT 1.0 if you use an extension function such as exsl:node-set() to trap and reprocess the results of the first pass.

I hope this helps.

. . . . . . . . . . . Ken

--
XSLT/XSL-FO/XQuery training in Los Angeles (New dates!) 2009-06-08
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson:    http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview:  http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread