Re: [xsl] node() and empty elements

Subject: Re: [xsl] node() and empty elements
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 10 Jan 2001 18:13:24 +0000

When you write

<xsl:value-of select="boolean(node())" />

the argument of the boolean() function is the node-set returned by the XPath expression


so it tests false for an empty element (because it has no children).





I noticed this behavior that seemed odd to me when using MSXML 3.0, and
couldn't find anything in the XMLT standards about whether this is the
proper behavior or not.

Given the following fragment:
        <Tag_2 />

node() at the Tag_1 context returns true, while at the Tag_2 context its
false.  It struck me as odd, as I expected an "empty node" to be a node none
the less.

Is this the expected behavior or an MSXML feature?  And if this is the
expected behavior, what's the logic behind it? And, if it is expected,
what's the best way to test for "is-empty-element"?

BTW: here's my little test template (a kind'a identity transform), just in case I did something wrong....

<xsl:template match="/ | *">

        <xsl:value-of select="name(.)" /> IsNode=<xsl:value-of
select="boolean(node())" />  <br/>

                <xsl:apply-templates select="*"/>


Robert S. Goheen

XSL-List info and archive:

====================================================================== 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