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
preceding-sibling::w:p[1]
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,
(preceding-sibling::w:p)[1]
No this is wrong. preceding-sibling::w:p[1] selects the most recent w:p element (the last in document order), whereas (preceding-sibling::w:p)[1] selects the first in document order.
Michael Kay Saxonica
-- Louis (Hank) Ratzesberger sopac.ucsd.edu
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Subdividing sets of eleme, Mark | Thread | Re: [xsl] testing preceding sibling, Michael Kay |
Re: [xsl] Subdividing sets of eleme, Mark | Date | [xsl] nbsp fails transformation, Szabo, Patrick \(LNG |
Month |