Re: [xsl] except (was: Keys with duplicates should be simple)

Subject: Re: [xsl] except (was: Keys with duplicates should be simple)
From: Graydon <graydon@xxxxxxxxx>
Date: Sun, 2 Feb 2014 22:28:52 -0500
On Sun, Feb 02, 2014 at 10:48:35PM +0000, Michael Kay scripsit:
> You've somehow got it into your head that the context for evaluation
> of the rh operand depends on the lh operand. Like I said, you're
> thinking of it as a predicate. That's not the case.

I think what's messing me up here is that (so far as I understand it)
the default case with a path expression 

/something/foo except bar

is two sequences-used-to-simulate-node-sets -- (A,B), (B,A), and
(A,B,B,A) are treated as identical, and they're not identical sequences
--and both foo and bar are relative to the current context node in the
path case.

So if it's div/* except heading

that comes out to

(div/child::*) except (div/child::heading)

and that doesn't register as lh and rh operands being independent.

The good thing about being publicly confused is one subsequently
remembers, so hopefully the lh and rh independence will stick.

> > descendant::* except self::heading
> 
> must be wrong, because the descendant axis never includes a node
> that's on the self axis: this is like saying "all my descendants
> except myself".

Which makes no sense, yes.

More confused than I thought; thank you.

-- Graydon

Current Thread