Subject: Re: Selecting all descendants with no child nodes From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Tue, 03 Oct 2000 17:19:34 +0100 |
Taras, 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" >nodes. > >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 //*[not(*)] If all nodes that have no children at all (apart from attribute nodes), then //node[not(node())] but this will get you terminal (leaf) text nodes too. //*[not(node())] 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 ====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 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: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Selecting all descendants with no c, Taras Tielkes | Thread | RE: Selecting all descendants with , John Dreystadt |
Re: Problems with XSL, XML code, T.Pospisek's MailLis | Date | RE: Formatting elements, Kay Michael |
Month |