This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]