|
Subject: RE: [xsl] Breaking up a large XML document into several smaller ones From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sat, 12 Jan 2008 08:42:04 -0000 |
A SAX solution would execute faster and in less memory but would take rather
longer to write.
It's not difficult in XSLT 2.0
<xsl:for-each-group select="widget" group-by="(position()-1) idiv 1000">
<xsl:result-document href="widgets{position()}.xml">
<widgets>
<xsl:copy-of select="current-group()"/>
</widgets>
</xsl:result-document>
</xsl:for-each-group>
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Glen Mazza [mailto:glen.mazza@xxxxxxxxx]
> Sent: 11 January 2008 14:49
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Breaking up a large XML document into several
> smaller ones
>
> Hello,
>
> I searched the XSLT FAQ and could not find an answer to this.
> If only for proof-of-concept (we may find better solutions
> not needing this), I am interested in breaking up a very
> large XML document into multiple smaller ones, and was
> wondering if XSLT would be a good solution for this. For
> example, if I have the following:
>
> <order>
> <widgets>
> <widget.../>
> <widget.../>
> ... (about 100000 widgets) ...
> </widgets>
> </order>
>
> And, as output, I would like about hundred documents of 1000
> widgets each, with the last document having the remainder
> (possibly not 1000)
> widgets:
>
> <order>
> <widgets>
> <widget../> // widget #1
>
> <widget.../> // widget #1000
> </widgets>
> </order>
>
> <order>
> <widgets>
> <widget../> // widget #1001
>
> <widget.../> // widget #2000
> </widgets>
> </order>
> ...
>
> Can this be done via XSLT, or would a SAX-based solution be
> more appropriate, or?
>
> Thanks,
> Glen
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Breaking up a large XML d, Andrew Welch | Thread | [xsl] XPath matching elements with , Stephen Colin (UK) |
| RE: [xsl] XPath matching elements w, Michael Kay | Date | RE: [xsl] Supressing entity expansi, Michael Kay |
| Month |