Greg Faron wrote:
At 04:36 PM 11/13/2002, you wrote:
Greg Faron <gfaron(_at_)integretechpub(_dot_)com> 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