- From: Romain Deltour <rdeltour@gmail.com>
- Date: Fri, 21 Sep 2012 11:16:10 +0200
- To: Nic Gibson <nicg@corbas.co.uk>
- Cc: XProc Dev <xproc-dev@w3.org>, Jostein Austvik Jacobsen <josteinaj@gmail.com>
- Message-Id: <86103E01-DA34-436E-9C4A-24D5BC344FFD@gmail.com>
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 > >
Attachments
Received on Friday, 21 September 2012 09:16:53 UTC