[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Using Saxon 8.5 and collection() to process a directory of XML files
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 |
Keywords