xsl-list
[Top] [All Lists]

Re: monotonous nbsp coding

2002-11-13 17:47:37
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



<Prev in Thread] Current Thread [Next in Thread>