Subject: Re: update value of variable in for-each loop
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Tue, 8 Apr 2014 20:56:10 +0100
|
What are you actually trying to achieve? If you simply want to test whether
one of the elementA elements contains "1234", you can write
<xsl:if test="elements/elementA[contains(., '1234')]">
...
</xsl:if>
But I can't tell if that's what you are trying to do because you don't say.
You've been using this list long enough to know that most of us have
difficulty reverse-engineering requirements from non-working code.
Michael Kay
Saxonica
On 8 Apr 2014, at 20:13, henry human <henry_human@xxxxxxxx> wrote:
> Hi
> I have a for-each loop
> inside for-each I try to test a variable:
> //if statement
> <xsl:if test="$foo = 1">
> //do nothing
>
>
>
> The varibale definition:
> <xsl:variable name="foo"/>
> <xsl:variable name="foo">
> <xsl:for-each select="data">
> <xsl:choose>
> <xsl:when test="contains(elements/elementA '1234)">
>
> <xsl:value-of select="1"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="0"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:for-each>
> </xsl:variable>
>
>
>
> Unfortunatelly the value of the varable foo is either 001 , 011,00011 and so
one and the if statement works never correct !
> I even defined the varable as a xs:integer type or as below , but ever the
value is never a 1 or 0
>
> <xsl:variable name="foo" select='1'"/>
> <xsl:variable name="foo">
> <xsl:for-each select="data">
> <xsl:choose>
> <xsl:when test="contains(elements/elementA, '1234)">
>
> <xsl:value-of select="'1'"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="'0'"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:for-each>
> </xsl:variable>
>
> Brg
> Henry
|