Re: [xsl] Cheaper to prepend or append an item to a sequence?

Subject: Re: [xsl] Cheaper to prepend or append an item to a sequence?
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Tue, 22 Feb 2011 14:40:50 +0000
On 22/02/2011 14:25, Andrew Welch wrote:
<report test="@id = (//@id[not(ancestor::meta)] except @id)">
The most
inefficient part of this is the test [not(ancestor::meta)] - it would be
nice if Saxon were smart enough to remember while scanning the elements
whether it has passed more meta start-tags than end-tags - but sadly, it
isn't.
couldn't that be rewritten as:

@id = //@id except (@id, //meta//@id)

to avoid the ancestor walk?

It could. Whether it would be faster depends on the volumetrics - something Saxon doesn't have any knowledge of at the time it makes optimization decisions.


Michael Kay Saxonica

Current Thread