Re: [xsl] Choose Test for Emtpy element

Subject: Re: [xsl] Choose Test for Emtpy element
From: Mike Brown <mike@xxxxxxxx>
Date: Fri, 14 Mar 2003 11:16:25 -0700 (MST)
Karl Stubsjoen wrote:
> I am performing a CHOOSE | WHERE | OTHERWISE

when, not where :)

> ... the test for this choose is
> to see whether or not my @AvailableInventory is '' (empty).  It doesn't seem
> to work, but indeed there is no real value in this attribute.  I'm thinking
> it is padded with spaces.  So how would I perform my test, but trim all the
> spaces... or is there another test for "Empty"?
> Here what I have so far:
> 
>   <xsl:when test="@availableInventory=''">

Use

  <xsl:when test="normalize-space(@availableInventory)">

The normalize-space function will produce a string with leading and trailing
whitespace removed, and adjacent embedded whitespace collapsed to a single
space. A string will test false if it is completely empty (zero length).

You could also use string(@availableInventory) if you don't need to strip
whitespace.

You probably noticed that test="@availableInventory" was always true when
there was an availableInventory attribute; this is testing a node-set to see
if it has any nodes in it.

Mike

-- 
  Mike J. Brown   |  http://skew.org/~mike/resume/
  Denver, CO, USA |  http://skew.org/xml/

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread