xsl-list
[Top] [All Lists]

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

2008-03-24 06:14:05

On Mon, 2008-03-24 at 14:07 +0100, Martin Honnen wrote:
Robert Koberg wrote:

but this does not:

...
<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"/>

I don't know how your template for root nodes (e.g. <xsl:template 
match="/">) looks but here it is possible that you recursively process 
your nodes again. I would rather expect you to use e.g.
   <xsl:apply-templates select="$jspx-doc/node()" mode="jspx"/>
here and then have templates filling the result document in mode="jspx".


The transformation does reach the match="/" mode="jspx" template, but
fails to write the file producing the error:

"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 ..."

That is why I don't understand. The temporary tree that I use
successfully to write the files (from the previous post) uses the exact
same source and destination URIs as the method above. Don't get it...

thanks,
-Rob


--~------------------------------------------------------------------
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>
--~--