xsl-list
[Top] [All Lists]

Re: <xsl:choose> or variable syntax incorrect?

2003-09-26 11:29:13

"Kathy Burke" <Kathy_Burke(_at_)Jabil(_dot_)com> wrote in message
news:395DE57EA5BB7F4E952B7B89775350B5021E4208(_at_)bosmsg10(_dot_)bos(_dot_)ena(_dot_)jabil(_dot_)com(_dot_)(_dot_)(_dot_)
Same problem...but perhaps not the variable name issue? I've used the
current() syntax per Dimitri. Again, I'm trying to get a navy row if the
when test < 1 count, otherwise red. My xml source has three <Station>
elements, 2 have <Board> elements, 1 does not. However, all rows remain
navy. Any other comments on where I could be gong astray with the
following?

You could be going astray almost everywhere -- the code full of weird things
to me.


<xsl:template match="Station">

<xsl:variable name="boards"
select="//Station[current()/@name]/Boards/Board"
/>

^^^^^^^^^^^^^^^^^

Are you sure you really *mean* this? This predicate is true if the current
node has a "name" attribute (which is probably always the case).


<xsl:variable name="nboards" select="count($boards)" />

Because you're later testing to see if the count is less than one or not,
you do not need the count at all. You just need whether the nodeset is empty
or not -- this happens to be the expression

      $boards

itself.


<xsl:choose>

<xsl:when test="$nboards &lt; 1">
   <tr bgcolor="navy" valign="middle">
   <td><xsl:value-of select="@name"/></td>
</xsl:when>

<xsl:otherwise>
   <tr bgcolor="red" valign="middle">
   <td><xsl:value-of select="@name"/></td>
</xsl:otherwise>

</xsl:choose>


This test seems also very strange for generating rows with alternating
properties, but you haven't at all explained the problem you're solving, so
it is difficult to say that what you're doing is just wrong.


I strongly recommend reading a good introductory book on XSLT -- e.g.
Jeni's:

     "Beginning XSLT"

for everyone, who needs to start understanding some basic concepts and
techniques in writing XSLT transformations.


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL




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