Hello,
Thanks, for the response. In fact I find it reasonable to work this way
since in my opinion side effects are not really the XSL way of doing things.
I found another solution but am now wondering about its scaleability.
The solution I found is to create a "temporary" subtree for each entry
by using a variable and the exslt extension node-set and simulating a
situation in which there is only a unique entry. I have something like
this :
<xsl:for-each select="/document/entry">
<xsl:variable name="temptree">
<document>
<xsl:copy-of select="body" />
<xsl:copy-of select="." />
</document>
</xsl:variable>
<!-- Handle the document as if there was a unique entry -->
<xsl:apply-templates select="exsl:node-set($temptree/document)" />
</xsl:for-each>
It works great, but I have a performance question. Does xsl:copy-of
effectively build a copy or are we internally working only with pointers
? Otherwise, this means I have an in memory copy of the potentially
very big part of the document for every "entry" (which can be numerous).
How does libxslt work in such a case ?
Cheers,
Benjamin
Daniel Veillard a écrit :
> On Tue, Mar 11, 2008 at 01:52:24PM +0100, Benjamin Habegger wrote:
>
>> Hello all,
>>
>> I was wondering if there was any way in libxml to deactivate the cache
>> of files loaded with the xslt document() function.
>>
>
> no, that's needed for proper implementation of XSLT
> http://www.w3.org/TR/xslt#function-document
> see paragraph 7:
> 'Two documents are treated as the same document if they are identified
> by the same URI.'
> and the explicit requirement
> 'generate-id(document("foo.xml"))=generate-id(document("foo.xml"))'
>
> which in libxml2/libxslt means using the same tree.
> I think you need to find a better way to accomplish what you want, but
> asking for different values on successive document() Just Can't Work !
>
> Daniel
>
>
_______________________________________________
xml mailing list, project page http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml