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




   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

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