- From: Romain Deltour <rdeltour@gmail.com>
- Date: Tue, 18 Dec 2012 08:48:00 +0100
- To: Mark Wilson <mark@knihtisk.org>
- Cc: xproc-dev@w3.org
> The fourth stylesheet outputs a series of xsl:result-document
> <xsl:result-document href="{concat('..\work\',replace(replace(replace(current-grouping-key(),'Č', 'C'),'á', 'a'), 'ý', 'y'))}.xml">
> How do I store each of these documents?
These documents should be readable on the "secondary" output port of the p:xslt step. You can iterate over them with a p:for-each and use a p:store inside to write them.
Note that they will have a base URI corresponding to the @href you set in the XSLT.
Romain.
On 16 déc. 2012, at 03:01, Mark Wilson <mark@knihtisk.org> wrote:
> I have the following XPL script, but do not know how to store the xml documents named inside the XSLT stylesheet
> 13CatalogsByName. Both it and the script are below:
>
> Any help appreciated, as I will be reusing this pattern.
> Thanks,
> Mark
>
> <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" name="myPipeline" version="1.0">
> <!-- This is the xml input -->
> <p:input port="source">
> <p:document href="../all-data-1975.xml"/>
> </p:input>
> <!-- Send the result of applying the stylesheets here -->
> <p:output port="result" sequence="true">
> <!-- <p:pipe step="step1" port="result"/> -->
> </p:output>
>
> <!-- Apply the first stylesheet -->
> <p:xslt name="select-catalogs">
> <p:input port="source"/>
> <p:input port="stylesheet">
> <p:document href="10CatalogSelect.xsl"/>
> </p:input>
> <p:input port="parameters" >
> <p:empty/>
> </p:input>
> </p:xslt>
>
> <!-- Apply the second stylesheet -->
> <p:xslt name="sort-catalogs">
> <p:input port="source"/>
> <p:input port="stylesheet">
> <p:document href="11CatalogsSort.xsl"/>
> </p:input>
> <p:input port="parameters" >
> <p:empty/>
> </p:input>
> </p:xslt>
>
> <!-- Apply the third stylesheet -->
> <p:xslt name="dedupe-catalogs">
> <p:input port="source"/>
> <p:input port="stylesheet">
> <p:document href="12CatalogDedupe.xsl"/>
> </p:input>
> <p:input port="parameters" >
> <p:empty/>
> </p:input>
> </p:xslt>
>
> <!--
>
> <p:store href="../work/400.xml" name="step1"/>
> This works and outputs the result of the first three steps
>
> However,
> The fourth stylesheet outputs a series of xsl:result-document
> <xsl:result-document href="{concat('..\work\',replace(replace(replace(current-grouping-key(),'Č', 'C'),'á', 'a'), 'ý', 'y'))}.xml">
> How do I store each of these documents?
> -->
>
> <!-- Apply the fourth stylesheet -->
> <p:xslt name="xml-catalogs">
> <p:input port="source"/>
> <p:input port="stylesheet">
> <p:document href="13CatalogsByName.xsl"/>
> </p:input>
> <p:input port="parameters" >
> <p:empty/>
> </p:input>
> </p:xslt>
> </p:declare-step>
>
> XSLT Stylesheet
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
> <xsl:output method="xml"/>
>
> <xsl:template match="List">
> <xsl:for-each-group select="Item" group-by="CatalogName">
> <xsl:result-document href="{concat('..\work\',replace(replace(replace(current-grouping-key(),'Č', 'C'),'á', 'a'), 'ý', 'y'))}.xml">
> <List>
> <xsl:for-each select="current-group()">
> <xsl:copy-of select="." copy-namespaces="no"/>
> </xsl:for-each>
> </List>
> </xsl:result-document>
> </xsl:for-each-group>
> </xsl:template>
>
> </xsl:stylesheet>
>
> --
> Mark Wilson
> Knihtisk Publishing
>
>
>
>
Received on Tuesday, 18 December 2012 07:48:36 UTC