Subject: Re: [xsl] update value of variable in for-each loop From: henry human <henry_human@xxxxxxxx> Date: Tue, 8 Apr 2014 21:18:58 +0100 (BST) |
sorry Michael, David I was little bustling! hope this below is more clear now. The varable value should be updated <xsl:variable name="foo"/> <xsl:for-each select=bpartiotion/files/file[@name=bxxb or name=bxyb or name=basdb or b&b&b&.. b> <xsl:variable name="foo"> <xsl:for-each select="data"> <xsl:choose> <xsl:when test="contains(elements/elementA '1234) or contains(elements/package/id '55) or contains(elements/category/id, '67)" or contains(b&b&b&b&."> <xsl:value-of select="1"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="0"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="$foo = 1"> //doSomething </xsl:when> <xsl:otherwise> //doNothing </xsl:otherwise> </xsl:choose> </xsl:for-each -------------------------------------------- Michael Kay <mike@xxxxxxxxxxxx> schrieb am Di, 8.4.2014: Betreff: Re: [xsl] update value of variable in for-each loop An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Datum: Dienstag, 8. April, 2014 21:56 Uhr 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')]"> B B B ... </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: > B B B <xsl:variable name="foo"/> > B B B B B B <xsl:variable name="foo"> > B B B B B B B B B B B B B B B <xsl:for-each select="data"> > B B B B B B B B B B B B B B B B B B <xsl:choose> > B B B B B B B B B B B B B B B B B B B B B <xsl:when test="contains(elements/elementA '1234)"> > > B B B B B B B B B B B B B B B B B B B B B B B B <xsl:value-of select="1"/> > B B B B B B B B B B B B B B B B B B B B B </xsl:when> > B B B B B B B B B B B B B B B B B B B B B <xsl:otherwise> > B B B B B B B B B B B B B B B B B B B B B B B B <xsl:value-of select="0"/> > B B B B B B B B B B B B B B B B B B B B B </xsl:otherwise> > B B B B B B B B B B B B B B B B B B </xsl:choose> > B B B B B B B B B B B B B B B </xsl:for-each> > B B B B B B B B B B B B </xsl:variable> > B B B B B B B B B B B B > B B B B B B B B B B B B > B B B B B B B B B B B B > Unfortunatelly the value of the varable foo is either 001 , 011,00011 and so one and the if statement works never correctB ! > I even defined the varable as a xs:integer type or as below , but ever the value is never a 1B orB 0 > > <xsl:variable name="foo"B select='1'"/> > B B B B B B <xsl:variable name="foo"> > B B B B B B B B B B B B B B B <xsl:for-each select="data"> > B B B B B B B B B B B B B B B B B B <xsl:choose> > B B B B B B B B B B B B B B B B B B B B B <xsl:when test="contains(elements/elementA, '1234)"> > > B B B B B B B B B B B B B B B B B B B B B B B B <xsl:value-of select="'1'"/> > B B B B B B B B B B B B B B B B B B B B B </xsl:when> > B B B B B B B B B B B B B B B B B B B B B <xsl:otherwise> > B B B B B B B B B B B B B B B B B B B B B B B B <xsl:value-of select="'0'"/> > B B B B B B B B B B B B B B B B B B B B B </xsl:otherwise> > B B B B B B B B B B B B B B B B B B </xsl:choose> > B B B B B B B B B B B B B B B </xsl:for-each> > B B B B B B B B B B B B </xsl:variable> > B B B B B B B B B B B B > Brg > Henry
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] update value of variable, Michael Kay | Thread | Re: [xsl] update value of variable, David Carlisle |
Re: [xsl] Re: [xquery-talk] backtic, Wolfgang Laun | Date | Re: [xsl] update value of variable, David Carlisle |
Month |