[
Lists Home |
Date Index |
Thread Index
]
From: "Richard Tobin" <richard@cogsci.ed.ac.uk>
> >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.
Sure. I can understand defining the abbreviated expression so it is more
useful. And I agree with your original point that the result is
counter-intuitive, because the intermediate set is not visible in the
expression. Just a bit of arcana that has to be memorized, I guess.
Bob Foster
|