Re: [xsl] Optimising multiple document() calls

Subject: Re: [xsl] Optimising multiple document() calls
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Mon, 11 Jul 2005 19:27:28 +1000
xsl:copy-of must be fast enough


Cheers,
Dimitre Novatchev.

On 7/11/05, Hondros, Constantine <Constantine.Hondros@xxxxxxxxxxxxxxxx>
wrote:
> I am pre-processing batches of about 1000 XML files at a time using Saxon.
> Part of the pre-process involves aggregating linked XML documents into the
> current document. Naturally, I use the document() function for this:
>
>        <xsl:template match="table-inclusion">
>                <!-- Do some cunning index/key lookup to get the inclusion's
> path (not shown) -->
>                <xsl:apply-templates
> select="document($inclusionpath)//incltable" />
>        </xsl:template>
>
> This node-set returned by document() then gets normalised by a general
> template rule:
>
>        <xsl:template match="@*|node()">
>          <xsl:copy>
>                <xsl:apply-templates select="@*|node()"/>
>          </xsl:copy>
>        </xsl:template>
>
> The problem is, this runs so slowly that it is jeopardising the whole
> processing pipeline. Some of the documents have five or six inclusions that
> have to be processed, and since the inclusions themselves are not massive,
> I'm assuming that the log-jam is in how I am pulling in the inclusions (ie.
> the document() function).
>
> How would you optimise this? Would a deep-copy with <xsl:copy-of> be
faster?
> Or am I better off writing my own processor for this aggregating step (easy
> enough).
>
> Thanks in advance.
>
>
> --
> The contents of this e-mail are intended for the named addressee only. It
> contains information that may be confidential. Unless you are the named
> addressee or an authorized designee, you may not copy or use it, or
disclose
> it to anyone else. If you received it in error please notify us immediately
> and then destroy it.

Current Thread