XSLT 3.0 allows you to do
<xsl:source-document href="input.xml" streamable="yes">
<xsl:apply-templates select="/*/row/copy-of(.)"/>
</xsl:source-document>
or in earlier drafts
<xsl:stream href="input.xml">
<xsl:apply-templates select="/*/row/copy-of(.)"/>
</xsl:stream>
which streams the file into a sequence of "row" elements, each of which can be
internally processed in non-streaming mode using ordinary XSLT/XPath code,
provided it only needs to look inside one row at a time.
Michael Kay
Saxonica
> On 7 Jan 2017, at 17:08, Geert Bormans geert@xxxxxxxxxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> All,
>
> I might be missing something
>
> An XML serialisation of an excel sheet just exploded into 1.4 GByte
> I have an XSLT that works on smaller subsets that I now want to apply on the
big file
> and if possible, I would prefer to not change all of my functions and
templates (that work on the row level) in to streaming mode
> Is there a way to process the table in streaming mode, but just process the
rows without caring about streaming there?
>
> Thanks
>
> Geert
>
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <-list/293509> (by email <>)
|