[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Quick Xpath
Your test case: <foo> <b/> <a/> <b/> <a/> <b/> </foo> doesn't differentiate a "b" with at least a preceding sibling "a" from a "b" whose immediate preceding is a "a"! On Wed, 2002-07-17 at 23:29, Garland foster wrote: > XMLCooktop works with > //b[preceding-sibling::*[self::a]] Yes, but this matches any "b" having any preceding-sibling equal to "a". > or > //b[preceding-sibling::*[1][self::a]] > or > //b[local-name(preceding-sibling::*[1])='a'] As Jeni mentioned, [self:a] has the advantage of also testing that your "a" element has no namespace. > > While XML-SPY works with > //b[preceding-sibling::*[self::a]] But again, that's not selective enough for your request. > but not with > //b[preceding-sibling::*[1][self::a]] > and doesn't work either with > //b[local-name(preceding-sibling::*[1])='a'] > > Interesting, which processor is wrong/right and why? Do you really think a XSLT processor may be right against Jeni :-) ? No, I am kidding and I think Jeni's wrong here and this should be: //b[preceding-sibling::*[last()][self::a]] (preceding-sibling returns the nodes by document order) Eric -- See you in San Diego. http://conferences.oreillynet.com/os2002/ ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com (W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema ------------------------------------------------------------------------
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|