[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Breaking up a large XML document into several smal
On 11/01/2008, Glen Mazza <glen.mazza@xxxxxxxxx> wrote: > 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? XSLT 2.0 would be easiest and quickest to code here, but if you have memory limitations then writing a sax based solution wouldn't to hard. The XSLT would be something like: <xsl:apply-templates select="/order/widgets/widget[position() mod 1000 = 1]"/> <xsl:template match="widget"> <xsl:result-document href="..."> <order> <widgets> <xsl:copy-of select=".|following-sibling::widget[position() < 1000]"/> ... cheers -- Andrew Welch http://andrewjwelch.com Kernow: http://kernowforsaxon.sf.net/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|