[
Lists Home |
Date Index |
Thread Index
]
Sounds like it's time for a bug report to support@xmlspy.com
Mark
-----Original Message-----
From: Jeni Tennison [mailto:jeni@jenitennison.com]
Sent: Wednesday, July 17, 2002 5:45 PM
To: Garland foster
Cc: Mark Feblowitz; 'Dare Obasanjo'; xml-dev@lists.xml.org
Subject: Re: [xml-dev] 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/
|