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: Вячеслав Седов <schematronic@xxxxxxxxx>
Date: Tue, 22 Feb 2011 22:51:40 +0300
nope... select all @id from whole doc which is not belong to meta node
- result ia same for every node

2011/2/22 Abel Braaksma <abel.online@xxxxxxxxx>:
> wQ^ESLAW,
>
> Actually, it _is_ dependent on the current node. //@id gets all @id nodes
in
> the document. The next "[..]" means "filter these nodes by the following
> expression". That expression is a node-test: "not(ancestor::meta)", which
is
> applied to the _current_ node (the current @id-node).
>
> That doesn't mean that a processor cannot optimize that, but in this case
> that might proof futile: no single element can contain multiple attributes
> with the same name. Hence the processor will have to test the predicate for
> each and every found id-attribute.
>
> In short: no, it cannot be calculated only once.
>
> Kind regards,
> Abel Braaksm
>
>
> On 22-2-2011 20:26, wQ^ESLAW sEDOW wrote:
>>
>> @id = //@id except (@id, //meta//@id) - yep... good idea
>>
>> but i think that even //@id[not(ancestor::meta)] should be calculated
>> only once since it not depend from current node - is not it? is
>> optimizer capable to recognize context dependant from context
>> independant XPath fragments inside predicate and calculate independant
>> fragments only once instead calculating it every time for each node?

Current Thread