RE: [xsl] Selecting the first node set

Subject: RE: [xsl] 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

Current Thread