This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: testing for child nodes
- To: rob at koberg dot com
- Subject: [xsl] Re: testing for child nodes
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Sat, 24 Feb 2001 10:40:51 -0800 (PST)
- Cc: xsl-list at lists dot mulberrytech dot com
- Reply-To: xsl-list at lists dot mulberrytech dot com
Robert Koberg wrote:
> I display the test value like so:
> **<xsl:value-of select="not(child::node())"/>**
> for a node that looks like this:
> <pointer role="News1" fileref="news1.xml"/>
>
> but the result is always true. How do you test for this? The pertinent part
> of the XSL is below:
>
> <xsl:choose>
> <xsl:when test="node()!=text() and not(child::node())">
> .................................
What is always false in your case is:
node()!=text()
This will be true if the current node has both text and non-text child nodes.
As your current node does not have any node() children at all, the above is false
and the whole "and"-expression:
node()!=text() and not(child::node())
is also false.
Most probably you wanted to specify the following:
<xsl:when test="not(self::text()) and not(child::node())">
This makes more sense, but will also be true for comments and PI-s
For an element that has no children (elements, comments, PIs, text),
specify the following expression:
not(node())
Dimitre Novatchev.
__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list