Re: Selecting all descendants with no child nodes

Subject: Re: Selecting all descendants with no child nodes
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 03 Oct 2000 17:19:34 +0100

Beginner XPath questions are fun. Educational for the newbies, and we all
get to see what different things people come up with.

At 10:24 PM 10/3/00 +0200, you wrote:
>I'm using the XPath expression "//*[count(*)=0]" to locate all "endpoint"
>Is there any other way to achieve this, an alternative syntax?

If you mean elements with no element children (which is what your version
is), then

If all nodes that have no children at all (apart from attribute nodes), then

but this will get you terminal (leaf) text nodes too.

gets you all elements that have no text nodes, elements, comments or
processing instructions inside them.

They all have in common the feature that an empty node-set evaluates, in an
expression that requires a boolean operand (such as a predicate []), as a
boolean false; so when you do the not() operation on an empty node-set, you
get boolean true.

Hope that helps,

Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
  Mulberry Technologies: A Consultancy Specializing in SGML and XML

 XSL-List info and archive:

Current Thread