[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Re: testing for child nodes


Subject: [xsl] Re: testing for child nodes
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Sat, 24 Feb 2001 10:40:51 -0800 (PST)

 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



Current Thread
Keywords
xsl