[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: XPath optional node question


Subject: Re: XPath optional node question
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 4 Dec 2000 18:44:37 GMT


   Hello all,

   I'm trying to write an XPath expression that matches optional elements in an
   element path.  For example, suppose I have the following XPath expression:

   foo//bar

   But I want to allow any number (even zero) of "a" and "b" elements to exist
   where the "//" is.  So my general expression would match the same nodes as,
   say, these xpaths:

   foo/a/bar
   foo/a/a/a/a/bar
   foo/a/b/bar
   foo/b/bar
   foo/bar

   But would not match nodes matched by:

   foo/x/bar

   I've been unable to construct a proper xpath.  Any help would be greatly
   appreciated.

   Thanks


I think this means you want bars that have a foo ancestor, and all the
ancesters are either foo or ancestors of foo (in which case you don't
care what they are) or they are a or b.

That is probably something like:


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



David

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp


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



Current Thread
Keywords