This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: xsl:if @attribute + xsl:variable not working


This is an alternative solution to your problem:

<xsl:for-each select="area">
   <td>
     <xsl:attribute name="bgcolor">
       <xsl:choose>
         <xsl:when test="@position=1">
           #FF7A0
         </xsl:when>
         <xsl:otherwise>
           #FF980F
         </xsl:otherwise>
       </xsl:choose>
     </xsl:attribute>
   </td>
</xsl:for-each>

About the message error, I think that the problem is an "out-of-scope" 
matter, because both the <xsl:variable> are inside an <xsl:if> element.
Give an eye to Mickeal Kay's XSLT Programmers Reference, page 315: the 
same example! :)

Aniceto Lopez wrote:

> Hi all:
> why if
> 
> <xsl:for-each select="area">
>     <xsl:if test="@position = 1">
>       <xsl:variable name="color" select="'#FFF7A0'"/>
>     </xsl:if>
>     <xsl:if test="@position = 2">
>       <xsl:variable name="color" select="'#FF980F"/>
>     </xsl:if>
> 
> <td bgcolor="{$color}">dadada asda</td>
> 
> </xsl:for-each>
> 
> I get this?
> 
> "A reference to variable or parameter 'colortabla' cannot be resolved.
> The variable or parameter may not be defined, or it may not be in scope."
> 
> -> the variable IS in scope (if I define it without xsl:if it works)
> xml -> <area position="1"> or <area position="2">
> 
> 
> thanks in advance
> 
> Aniceto Lopez
> 
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]