Re: [xsl] How can I conditionaly assign a node-set to my variable?

Subject: Re: [xsl] How can I conditionaly assign a node-set to my variable?
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Thu, 20 Jan 2005 06:27:09 +1100
Use:

       channel[6 > id or id='P'] [6 > $n and $hasP]
   | 
       channel[6 > id] [not(6 > $n and $hasP)]


Of course, in XPath 2.0 one can simply use a conditional expression:

       if(expression)
         then expression 
         else expression

Cheers,

Dimitre Novatchev.


On Thu, 20 Jan 2005 04:13:25 +1000, r.moe@xxxxxxxxxxxxxxxxxx
<r.moe@xxxxxxxxxxxxxxxxxx> wrote:
> How can I conditionaly assign a node-set to my variable?
> Variable needs to have local scope.
> Obviously I can't use <xsl:value-of.../>.
> I get the error message:
> "Reference to variable or parameter 'firstTableRows' must
> evaluate to a node list."
> 
> Code:
> 
> <xsl:variable name="firstTableRows">
> <xsl:choose>
>   <xsl:when test="6&gt;$n and $hasP">
>     <xsl:value-of select="channel[6&gt;id or id='P']"/>
>   </xsl:when>
>   <xsl:when test="6&gt;$n">
>     <xsl:value-of select="channel[6&gt;id]"/>
>   </xsl:when>
>   <xsl:otherwise>
>     <xsl:value-of select="channel[6&gt;id]"/>
>   </xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
> 
> Thanks,
> Roy

Current Thread