This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: document() runs out of memory
- To: xsl-list at mulberrytech dot com
- Subject: Re: document() runs out of memory
- From: Myriam_Midy at lotus dot com
- Date: Tue, 21 Mar 2000 15:12:23 -0500
- Reply-To: xsl-list at mulberrytech dot com
Hi,
I didn't try this, so I'm not sure if it will work or if it will make a
difference but you may want to give it a try.
<xsl:template match="/">
<xsl:variable name="contents">
<xsl:for-each select="document('all_forms_list.xml')/someURIs/file/text
()">
<xsl:value-of select="document(string(.))"/>
<xsl:apply-templates select="$contents//XFDL"/>
</xsl:for-each>
</xsl:variable>
</xsl:template>
Myriam
owner-xsl-list@mulberrytech.com on 03/21/2000 02:31:53 PM
Please respond to xsl-list@mulberrytech.com
To: "'XSL-List@mulberrytech.com'" <XSL-List@mulberrytech.com>
cc: (bcc: Myriam Midy/CAM/Lotus)
Subject: document() runs out of memory
I am using the document function to read in external files but seem to be
exceeding my memory limits. I believe it is because the previously read
files are still being held in memory but I don't know how to remove them.
The main template is:
<xsl:template match="/">
<xsl:for-each select="document('all_forms_list.xml')/someURIs/file/text
()">
<xsl:variable name="contents" select="document(string(.))"/>
<xsl:apply-templates select="$contents//XFDL"/>
</xsl:for-each>
</xsl:template>
There is a single document all_forms_list.xml which is a list of URI's to
be read. When the list gets to about 250 URI's the parser exists with an
out of memory exception.
I am using Apache Xalan 0.19.2 with 256meg of memory on a pentium running
NT 4.0.
I ran a test to determine if it was the input or the output trees that were
exceeding the memory and concluded that it was the inputs. I doubled the
size of the output tree (by executing the templates 2X) and still failed at
the same number of inputs even though my outputs went from ~3000 lines of
XML to ~6000 lines of XML.
I'm afraid that the variable $contents is being created scoped within the
for-each and that I'm getting a new one everytime but I don't know how to
prevent it. Any ideas?
Brad Sommerfeld
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list