This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: XPath optional node question
- To: davidc at nag dot co dot uk, XSL-LIST <xsl-list at mulberrytech dot com>
- Subject: Re: XPath optional node question
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Mon, 4 Dec 2000 21:59:21 -0800 (PST)
- Reply-To: xsl-list at mulberrytech dot com
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