Subject: Re: monotonous nbsp coding
From: Mike Brown <mike@xxxxxxxx>
Date: Wed, 13 Nov 2002 17:47:37 -0700 (MST)
|
Greg Faron wrote:
> At 04:36 PM 11/13/2002, you wrote:
> >Greg Faron <gfaron@xxxxxxxxxxxxxxxxxx> wrote:
> > > <xsl:if test="string-length() = 0">
> > ^^ Is this a typo?
>
> No. When called without an argument, the context node is converted to a
> string and used as the argument. There are many alternative ways to test
> whether the string value of the context node is the empty string, I simply
> carried the one that the OP used so as not to confuse the reference. Other
> possibilities include
> string(.) = ''
> normalize-space() = ''
> normalize-space(.) = ''
The equality tests aren't even needed in those, since the fact that it's in a
test attribute means that the whole thing is treated as if it is wrapped in
boolean(). The boolean equivalent of an empty string or the number zero is
false.
> not(string(.))
Yeah, just like that.
> normalize-space(string-length(.)) = 0
That's a lot of extra work. The argument to normalize-space() ends up being a
number, which has to be coerced to a string, and then your equality test
converts it back into a number in order to compare it with zero.
normalize-space() with no arguments and no comparisons is all you need.
- Mike
____________________________________________________________________________
mike j. brown | xml/xslt: http://skew.org/xml/
denver/boulder, colorado, usa | resume: http://skew.org/~mike/resume/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|
Vasu Chakkera - Wed, 27 Nov 2002 11:01:17 -0500 (EST)
|
|