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

Subject: [xsl] How to efficiently obtain the first 10 records of a file with over 2 million records?
From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 19 Jul 2023 15:15:49 -0000
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