Subject: RE: Selecting the first node set
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 14 Aug 2006 18:00:09 +0100
|
> One has to be willing to think with the
> literal-mindedness of a machine to tell the difference
> between /descendant-or-self::node()/child::Value[1] and
> (/descendant-or-self::node()/child::Value)[1], and that can
> take a bit of practice.
Yes. I'm not sure why people struggle with this though. It seems intuitive
enough that
x | y[1]
doesn't mean the same as
(x | y)[1]
so why is the "/" perceived so differently from the "|"? Is it that people
are somehow aware that it's a higher-order operator and therefore imagine it
doesn't obey normal precedence rules? Or is it the overloading of [], which
in its other role as a boolean filter is associative with "/"?
Michael Kay
http://www.saxonica.com/
|