[xsl] Breaking up a large XML document into several smaller ones

Subject: [xsl] Breaking up a large XML document into several smaller ones
From: "Glen Mazza" <glen.mazza@xxxxxxxxx>
Date: Fri, 11 Jan 2008 09:48:42 -0500
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