OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Quick Xpath

[ Lists Home | Date Index | Thread Index ]

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
------------------------------------------------------------------------





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS