Re: [xsl] update value of variable in for-each loop

Subject: Re: [xsl] 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

Current Thread