[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
|

Cart



