This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Carrying variable value outside for-each loop
- To: XSL List <xsl-list at lists dot mulberrytech dot com>
- Subject: Re: [xsl] Carrying variable value outside for-each loop
- From: Joerg Pietschmann <joerg dot pietschmann at zkb dot ch>
- Date: Wed, 22 Aug 2001 12:15:50 +0200
- Organization: ZKB
- Reply-To: xsl-list at lists dot mulberrytech dot com
sridhar raman <thotha3@yahoo.com> wrote:
> Hi,
> I have the following xsl structure.
> <xsl:for-each>
> <xsl:if <condition>>
> <!--set a variable value to "true"-->
> </xsl:if>
> </xsl:for-each>
> <!--would like to use the variable value here-->
>
> But unfortunately, the variable value becomes empty
> outside the for-each scope. So what should I do to
> have the variable retain its acquired value. Can I use
> global variable, if so how?
Variables in XSL are quite different from variables in
most other programming languages.
You have already been told a possible solution for your
problem. This solution:
<xsl:variable name="status">
<xsl:for-each select="$node-set>
<xsl:if test="condition">
<xsl:value-of select="true()"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
has some pitfalls: in the sample code Mr.Rajkumar provided,
the test="$status" is always true, you need to test string($status).
There may be better solutions, depending on what you actually
want to do.
If you want to test whether there are nodes fulfilling
a certain condition within a given node set, you can
try
<xsl:if test="$node-set[condition]">
<!-- your code here -->
</xsl:if>
directly.
HTH
J.Pietschmann
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list