The below should do it
<xsl:for-each select="/Document/record">
<xsl:if test="position() <= 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: 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
|