Subject: Re: [xsl] Cheaper to prepend or append an item to a sequence? From: Abel Braaksma <abel.online@xxxxxxxxx> Date: Tue, 22 Feb 2011 21:02:14 +0100 |
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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Cheaper to prepend or app, Вячеслав Седов | Thread | Re: [xsl] Cheaper to prepend or app, Вячеслав Седов |
Re: [xsl] Cheaper to prepend or app, iwanttokeepanon | Date | Re: [xsl] Cheaper to prepend or app, Вячеслав Седов |
Month |