This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: XPath optional node question


David,
not(self::a) or not(self::b) is wrong -- it is equivalent to self::*

Should be 'and'.

The expression that really works is:

//bar[ancestor::*[not(self::a) and not(self::b)][1][self::foo]]


Cheers,
Dimitre.

David Carlisle wrote:

me> bar[ancestor::foo and ancester::*[self::foo or descendent::foo or
me> self::a or self::b]]

as previously mentioned that fails if there are extra foo in the
tree, but I think

bar[ancestor::*[not(self::a) or not(self::b)][1][self::foo]]

meets the spec: the first ancestor that isn't a or b is foo.

or, going the other way:

foo[descendent::*[not(self::a) or not(self::b)][1][self::bar]]

foo such that the first descendent that isn't a or b is bar.

David



__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]