[xsl] Performance of xsl:for-each with key() lookup

Subject: [xsl] Performance of xsl:for-each with key() lookup
From: "Martynas Jusevičius martynas@xxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 26 Sep 2018 20:39:52 -0000
Hi,

I'm using the following pattern in multiple places in my stylesheets:

    <xsl:for-each select="key('some', $value, $doc)">

My question is, would iteration be optimized if I selected the nodes
into a variable first?

    <xsl:variable name="elems" select="key('some', $value, $doc)"
as="element()*"/>
    <xsl:for-each select="$elems">

I guess it should be faster if the key() function is called only once
instead of multiple times? But if there is an index maybe it doesn't
matter?

And does the same apply to

    <xsl:apply-templates select="key('some', $value, $doc)"/>

as well?

I'm using Saxon 9.1.0.8.


Martynas

Current Thread