Subject: Re: [xsl] Streaming with XSLT version 3.0 From: Eliot Kimber <ekimber@xxxxxxxxxxxx> Date: Thu, 06 Mar 2014 12:18:29 -0600 |
Would using <xsl:sequence select="."/> rather than <xsl:copy-of select="."/> make a difference in this case? My understanding was that <xsl:sequence> would, under the covers, just use the same object (that is the input node) in the result, while copy-of copies the node into the output. But maybe Saxon optimizes this case and always just uses a pointer? Cheers, Eliot bbbbb Eliot Kimber, Owner Contrext, LLC http://contrext.com On 3/6/14, 10:45 AM, "Michael Kay" <mike@xxxxxxxxxxxx> wrote: > >On 6 Mar 2014, at 12:58, Terry Badger <terry_badger@xxxxxxxxx> wrote: > >> I have a 42 GB media and valid xml file as my source. I am using Oxygen >>15.2 with Saxon ee 9.5.1.3. I am using this stylesheet which as you can >>see I turned off what I wanted to do to see if I could get to the end of >>the file. After about 45 minutes it hits my memory limit and quits. Am I >>doing this right or will I need to cut this elephant into pieces? >> Terry > >This should work. The most common reason for this kind of problem is that >people try to supply the input document as a conventional source document >as well as supplying it to xsl:stream, so it builds a tree in memory >anyway. However, that would normally fail much sooner than 45 minutes - >though you didn't say how much memory was available. Do you get a stack >trace at the point where it runs out of memory? > >(I know you don't want to run for 45 minutes just to find out! I find it >very useful when developing streaming applications to have something >smaller to play with, preferably about 1Gb. Of course, creating such a >file is much easier once you have got streaming working!) > >Michael Kay >Saxonica > >> >> <xsl:stylesheet >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >> xmlns:xs="http://www.w3.org/2001/XMLSchema" >> xmlns="http://www.mediawiki.org/xml/export-0.8/" >> xpath-default-namespace="http://www.mediawiki.org/xml/export-0.8/" >> exclude-result-prefixes="#all" >> version="3.0"> >> <xsl:outputmethod="xml"/> >> <xsl:templatename="main"> >> <xsl:streamhref="../source/enwiki.xml"> >> <!-- <xsl:result-document href="../out/output-wiki-02.xml"> >> <xsl:for-each select="mediawiki"> >> <xsl:element name="mediawiki"> >> <xsl:for-each select="page[position() < 10]"> >> <xsl:copy-of select="."/> >> </xsl:for-each> >> </xsl:element> >> </xsl:for-each> >> </xsl:result-document>--> >> </xsl:stream> >> </xsl:template> >> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Streaming with XSLT versi, Michael Kay | Thread | Re: [xsl] Streaming with XSLT versi, Michael Kay |
Re: [xsl] GPX to XML?, Michael Kay | Date | Re: [xsl] Streaming with XSLT versi, Michael Kay |
Month |