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 |