|
Subject: RE: [xsl] Using Saxon 8.5 and collection() to process a directory of XML files From: "Welch Andrew (ELS)" <A.Welch@xxxxxxxxxxxx> Date: Fri, 5 Aug 2005 17:08:56 +0100 |
> > I now have Saxon 8.5b processing a directory of xml files and
> > generating the required html files, using the following:
> >
> > <xsl:for-each select="collection(concat($xmlDir, '?select=*.xml'))">
> > <xsl:result-document href="{$outputDir}/{$fileName}.html">
> > ...
> > </xsl:result-document>
> > <xsl:for-each select="saxon:discard-document(.)" />
> </xsl:for-each>
> >
> > -Am I using saxon:discard-document() correctly... Seems odd?
>
> There's a danger Saxon will optimize it out if you use it in
> a context where the result of the function (which is the same
> as the input) isn't used. So a safer usage is:
>
> > <xsl:for-each select="collection(concat($xmlDir, '?select=*.xml'))">
> <xsl:for-each select="saxon:discard-document(.)">
> > <xsl:result-document href="{$outputDir}/{$fileName}.html">
> > ...
> > </xsl:result-document>
> > </xsl:for-each>
> > </xsl:for-each>
>
> or you could tag it on to the outer for-each:
>
> <xsl:for-each select="collection(concat($xmlDir,
> '?select=*.xml'))/saxon:discard-document(.)">
I don't think the any keys generated for each document are being discarded
with it. For example:
<xsl:for-each select="collection(concat($xmlDir, '?select=*.xml'))">
<xsl:if test="saxon:discard-document(.)">Discarded.</xsl:if>
</xsl:for-each>
This seems to work fine, memory usage hovers around the same amount. If a
call to a key is added:
<xsl:for-each select="collection(concat($xmlDir, '?select=*.xml'))">
<xsl:value-of select="key('somekey','someval')"/>
<xsl:if test="saxon:discard-document(.)">Discarded.</xsl:if>
</xsl:for-each>
Memory usage grows until an OutOfMemoryError is thrown.
Is there a workaround for this?
> > -Is it possible to continue the processing should one of the source
> > files contain an error (say a parse error)?
> >
>
> Yes, there's a query parameter
> ?select=*.xml;on-error=ignore|warning|fail
This works well, thanks.
andrew.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Using Saxon 8.5 and colle, Michael Kay | Thread | RE: [xsl] Using Saxon 8.5 and colle, Michael Kay |
| [xsl] , crvelin | Date | Re: [xsl] RE: What did "template ma, Jay Bryant |
| Month |