Re: [xsl] How to efficiently obtain the first 10 records of a file with over 2 million records?

Subject: Re: [xsl] How to efficiently obtain the first 10 records of a file with over 2 million records?
From: "Ryan Livingstone ryan.livingstone@xxxxxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 19 Jul 2023 15:21:09 -0000
The below should do it

<xsl:for-each select="/Document/record">
    <xsl:if test="position() &lt;= 10">
        <xsl:copy-of select="."/>
    </xsl:if>
</xsl:for-each>


-----Original Message-----
From: Roger L Costello costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Wednesday, July 19, 2023 4:16 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] How to efficiently obtain the first 10 records of a file with
over 2 million records?

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