[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: check if a node is empty
Subject: Re: check if a node is empty
From: "Vasu Chakkera" <vasucv@xxxxxxxxxxx>
Date: Thu, 17 Oct 2002 16:12:59 +0000
|
Thanks Jeni, I had the same nasty feeling about using the count(*)..
Thanks David and Joerg for your explanation
Vasu
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Reply-To: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
To: "Vasu Chakkera" <vasucv@xxxxxxxxxxx>
CC: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: check if a node is empty
Date: Thu, 17 Oct 2002 16:49:00 +0100
Hi Vasu,
> would the following statement
> <xsl:template match="node">
> ....
> <xsl:when test="count(*)=0"> ( to check for empty child elements)
> ----
> </xsl:template>
> be any inefficient ?( was just thinking of other ways to do it
> besides the standard ones you have suggested )
It would be more inefficient (at least with a naive processor) because
the processor would have to visit every child element of the current
node in order to count them. Node visits take time, so avoiding them
is a good idea. On the other hand, that's also the case with a naive
implementation of:
test="*"
However, most processors will rewrite this test to:
test="*[1]"
which only involves one node visit. I believe that Saxon rewrites
count(*) = 0 to boolean(*[1]) as well, actually, so perhaps there's
not much in it...
So try it and see with your favourite processor :)
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
_________________________________________________________________
Internet access plans that fit your lifestyle -- join MSN.
http://resourcecenter.msn.com/access/plans/default.asp
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|