I want to select those elements that do *not* have a descendant.
not having any descendant is the same as not having a child which is
select="*[not(*)]"
your subject line though says "certain descendants" to select all child
elements of the current node that don't have a foo or bar descendent
select="*[not(.//*[self::foo or self::bar])]
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list