Subject: Re: 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>$n and $hasP">
> <xsl:value-of select="channel[6>id or id='P']"/>
> </xsl:when>
> <xsl:when test="6>$n">
> <xsl:value-of select="channel[6>id]"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="channel[6>id]"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
>
> Thanks,
> Roy
|