[
Lists Home |
Date Index |
Thread Index
]
At 08:56 PM 8/26/2003, Richard Tobin wrote:
> >This is easier to understand if you think of it in terms of set construction
> >and iterators. The two expressions with abbreviations eliminated are:
> >
> >/descendant-or-self::node()/para[1]
> >/descendant::para[1]
>
>You might ask why // means the first of these, rather than the more
>obvious second. The answer (I think) is precisely so that expressions
>like //para[1] will mean what they do; it's more common to want to
>treat the first paragraph in each section specially than the first
>paragraph in the while document.
Another reason is that we wanted the definition of // to work for both
elements and attributes:
//@id
//para
The expanded definition of // works for both these cases. It's rather hard
to think of anything based on the XPath axes that does this any better.
Jonathan
|