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
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--