xsl-list
[Top] [All Lists]

Re: boolean values

2003-08-27 15:05:29
Well, Matt, I'm still new to XSLT, nevertheless I would go like this:
(Hope I'm right and this helps)

----------------------------------
        .
        .
   <xsl:variable name="hasContractsTest">
        <xsl:call-template name="hasContracts">
                <xsl:with-param name="branding" select="$branding"/>
        </xsl:call-template>
   </xsl:variable>
   <xsl:variable name="hasContracts" select="boolean(hasContractsTest)"/>
        .
        .
--------
        <xsl:template name="hasContracts">
                <xsl:param name="branding">
                <xsl:choose>
                        <xsl:when test="$branding = 'ABC' and 
/Output/Contracts/Contract[substring(ContractId,1,1) = 'Q']">1</xsl:when>
                        <xsl:when test="/Output/Contracts/Contract">1</xsl:when>
                        <xsl:otherwise>0</xsl:otherwise>             
                </xsl:choose> 
        </xsl:template>
====================

It's not necessary to call the count() function, because if the test 
/Output...'Q' will return an empty node-set the processor interprets it as 
false. One or more elements in the node-set as true.

Yours Romeo.

Am Mittwoch, 27. August 2003 22:35 schrieb Keller, Matt:
I'm having trouble creating variables that are equivalent to a boolean
value.

I have a variable that was previously coded in this fashion:

<xsl:variable name="hasContracts"
select="boolean(/Output/Contracts/Contract)"/>

This returned an actual true/false boolean value, and I was able to test
for it like this:

<xsl:if test="$hasContracts">

However, due to business needs, I have to expand my variable.  I have since
code it in this manner:

   <xsl:variable name="hasContracts">
              <xsl:choose>
                      <xsl:when test="$branding = 'ABC'"><xsl:value-of
select="count(/Output/Contracts/Contract[substring(ContractId,1,1)='Q'])
&#62; 0"/>                    </xsl:when> <xsl:otherwise><xsl:value-of
select="boolean(/Output/Contracts/Contract)"/></xsl:otherwise>
</xsl:choose>
   </xsl:variable>

And now it is no longer a boolean value, perhaps because true or false is a
child of the xsl:variable element?

Is there a way to put the value of your variable in a xsl:choose and retain
a true boolean value?

Thanks,

Matt

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

-- 
Romeo Disca
Email: romeo(_dot_)disca(_at_)t-online(_dot_)de

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



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