xsl-list
[Top] [All Lists]

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

2008-03-24 04:00:36
On 24/03/2008, Robert Koberg <rob(_at_)koberg(_dot_)com> 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/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--