Subject: Re: [xsl] How to efficiently obtain the first 10 records of a file with over 2 million records? From: "Michael Kay michaelkay90@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 19 Jul 2023 17:20:50 -0000 |
Just put it through a streaming XSLT 3.0 processor and it should work just fine. Note, even a non-streaming XSLT processor, if it has a half-way decent optimizer, should stop processing after the 10th record. The difference with a streaming processor is that it will stop the XML parser reading the rest of the file and building the tree in memory. Michael Kay Saxonica > On 19 Jul 2023, at 16:16, Roger L Costello costello@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > Hi Folks, > > I have an XML file containing over 2 million <record> elements. I want to obtain the first 10 <record> elements. > > Here's how I did it: > > <xsl:for-each select="/Document/record[position() le 10]"> > <xsl:sequence select="."/> > </xsl:for-each> > > I ran it and it took a long time to complete. I am guessing that the XSLT processor is iterating over all 2 million <record> elements. Yes? How to write the XSLT code so that the XSLT processor stops iterating upon processing the first 10 <record> elements? > > /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to efficiently obtain, Norm Tovey-Walsh ndw | Thread | Re: [xsl] How to efficiently obtain, Dimitre Novatchev dn |
Re: [xsl] How to efficiently obtain, Roger L Costello cos | Date | Re: [xsl] How to efficiently obtain, Dimitre Novatchev dn |
Month |