Re: Looping input and output in XProc

Attached is a sample step that implements Jostein's approach. It has a non-sequence primary "source" port and a sequence "stylesheets" port holding the sequence of XSLTs.

The code has inlined sample source and XSLTs, but if you remove them it should be generic enough to be reusable as-is.

Depending on how you get your initial  list of URLs,  you can probably use p:load step in a p:for-each to build the sequence of XSLTs.

HTH
Romain.


On 21 sept. 2012, at 09:58, Jostein Austvik Jacobsen <josteinaj@gmail.com> wrote:

> Depending on how many XSLTs you want to apply, recursion would be an alternative...
> 
> Jostein
> 
> 
> On Thu, Sep 20, 2012 at 5:19 PM, Nic Gibson <nicg@corbas.co.uk> wrote:
> Hi Folks
> 
> I have a problem that is best expressed as something like this (given an xml document xmldoc initialised to the initial input)
> 
> 1. fetch URL for XSLT from list
> 2. Load XSLT file
> 2. process xmldoc with XSLT
> 3. set xmldoc to result
> 4. fetch next file from from list. If found go to 1. If not emit current xmldoc
> 
> The problem is that I have an arbitrary collection of XSLT stylesheets that I need to apply to an XML document passing the result of the first transform to the second XSLT and so on. Right now, the only thing I can see to do is to use another bit of XSLT to generate an XProc pipeline and execute that. I would prefer to be able to do this without that and simply express this as some sort of iteration in XProc. 
> 
> I haven't been able to think of a way that I can express this in XProc. Anyone get some spare intuition?
> 
> 
> thanks
> nic
> --
> Corbas Consulting / @CorbasLtd
> Digital Publishing Consultancy and Training
> http://www.corbas.co.uk, +44 (0)7718 906817/+44 (0)1273 930765
> 
> 

Received on Friday, 21 September 2012 09:16:53 UTC