[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Re: Assignment no, dynamic scoping si (was: Re: RE: Wishes for XSL revisions ...


Subject: RE: [xsl] Re: Assignment no, dynamic scoping si (was: Re: RE: Wishes for XSL revisions ...
From: "Evan Lenz" <elenz@xxxxxxxxxxx>
Date: Wed, 2 Jan 2002 13:11:12 -0800

Wendell Piez wrote:
> (And just checking ... XPath experts ...
> ancestor-or-self::*[@source][last()] will give me the *closest* 'source'
> attribute on an ancestor or self ... not the most distant, won't it?)

Unless a predicate is bound (without intervening parentheses) to a node
test, it is always evaluated with respect to a "forward" axis (the XPath
spec arbitrarily chooses the child axis).

ancestor-or-self::*[@source][last()]

Your example features both kinds of predicates. The first predicate is part
of the Step production (tightly bound to the node test) and the second is
part of a FilterExpr (loosely applied to the result of the expression to the
left). As it happens, the first predicate is not a positional predicate, so
the fact that it's evaluated with respect to a "reverse" axis makes no
difference to the result. The second predicate, as stated above, is
evaluated with respect to a "forward" axis, i.e. document order. So, yes,
the second predicate selects the node (from the node-set result of the
expression to the left) that's *last* in document order.

Evan


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords