[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Quick Xpath
Hi Garland, > XMLCooktop works with > //b[preceding-sibling::*[self::a]] > or > //b[preceding-sibling::*[1][self::a]] > or > //b[local-name(preceding-sibling::*[1])='a'] > > While XML-SPY works with > //b[preceding-sibling::*[self::a]] > 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? Well, the path: //b[preceding-sibling::*[self::a]] should give you all the b elements (in no namespace) that follow an a element (in no namespace), whether or not that a element is their immediately preceding sibling or not -- it's exactly the same as: //b[preceding-sibling::a] The path: //b[preceding-sibling::*[1][self::a]] should give you all the b elements (in no namespace) that immediately follow an a element (in no namespace). The path: //b[local-name(preceding-sibling::*[1]) = 'a'] should give you all the b elements (in no namespace) that immediately follow an a element (in any namespace). If that's not what XML Spy's processor is giving you, then that processor is wrong. I tried with Saxon, MSXML4, MSXML3, Xalan-J, Xalan-C++, and jd.xslt and they all behaved as expected. (libxslt didn't though.) Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
|
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
|