Subject: Re: [xsl] testing preceding sibling always evaluates true|
From: Hank Ratzesberger <hankr@xxxxxxxx>
Date: Tue, 09 Aug 2011 20:15:26 -0700
I just received the 4th edition (it really is hardbound!) so I could check if anything had changed, but on p. 602 :
There are three kinds of expressions in XPath 2.0 whose result is guaranteed to be a sequence of nodes in document order...
o Any axis step (even and axis step like <preceding-sibling::*> that uses a reverse axis delivers its results in forwards document order)
In effect, the predicate operator <> has a higher precedence (it binds more tightly) than the path operator </>
That's a bit subtle, but OK, now I know, XPath has an evaluation precedence to consider.
I believe the issue is (and I would like some clarification), is that axis steps always return nodes in document order so
will always return the first paragraph with its TableCaption child.
I believe the work around for this, to collect the nodes in search order, is to make them a set,
No this is wrong. preceding-sibling::w:p selects the most recent w:p element (the last in document order), whereas (preceding-sibling::w:p) selects the first in document order.
Michael Kay Saxonica
-- Louis (Hank) Ratzesberger sopac.ucsd.edu