Re: [xsl] fn:collection and result-document problem

Subject: Re: [xsl] fn:collection and result-document problem
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Mon, 24 Mar 2008 11:00:06 +0000
On 24/03/2008, Robert Koberg <rob@xxxxxxxxxx> wrote:
> Hi,
>
>  I am trying to transform a directory of XML files from one directory to
>  another. The XSL below fails with an error saying:
>
>   "Cannot write more than one result document to the same URI, or write
>  to a URI that has been read: file:/path/to/my/source.xml ..."
>
>  If I comment out the result-document instructions, the xsl:message list
>  all of the unique file paths. In other words, I am not trying to write
>  more than one result document to the same URI or trying to write to a
>  URI that has been read. What am I doing wrong?
>  ...
>  <xsl:apply-templates
>   select="collection($jspx-includes-dir)"
>   mode="jspx"/>
>  ...
>  <xsl:template match="/" mode="jspx">
>   <xsl:variable name="jspx-doc" select="."/>
>   <xsl:variable name="page-path"
>     select="concat($output-dir, '/WEB-INF/jspx/',
>  tokenize(document-uri(/), '/')[last()])"/>
>   <xsl:message>
>  JSPX: <xsl:value-of select="$page-path"/>:
>   </xsl:message>
>   <xsl:result-document href="{$page-path}">
>     <xsl:apply-templates select="$jspx-doc"/>
>   </xsl:result-document>
>  </xsl:template>

Probably two files in the input collection with the same name but
different path... with the code above that would result in the same
$path-path for both.

cheers
-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread