[Home] [By Thread] [By Date] [Recent Entries]


From: "Richard Tobin" <richard@c...>
> >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


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member