XSLT - counting the number of xsl:if which are true...

L

Lizard

OK, total newbie here, so this may be a mind-numbingly dumb question AND
I may be phrasing it badly.

I have an xsl:template which looks like this:

<xsl:template match="LoanRecord">
<hr>
<xsl:number count="LoanRecord" format="1"/><br/>
Loan ID:<xsl:value-of select="loan_no"> </xsl:value-of><br/>
Calculated CLTV:<xsl:value-of select="format-number (curr_balance div
orig_amount,'##%')"> </xsl:value-of>
<xsl:if test="(number(curr_balance div orig_amount) &gt; 0.8)">
<i> (High LTV)</i>
</xsl:if>
</hr>
</xsl:template>

In short, it prints some data from the input file, and calculates a
value, and, if that value is above a certain value, it also outputs a
warning message.

This works.

What I want, though, is to have several xsl:if statements in there, and,
at the end, to tally all those who evaluated to true. However, there
seems to be no way to easily keep a running count of things. I am slowly
begining to suspect this is by design. I am also aware I haven't fully
inhaled the full syntax and function library of xslt, much less grokked
all the cool things which can be done with it, so I am wondering if I
might be missing something. (I know I can easily count all the nodes
which meet a given condition; what I want to do is, within a record,
check for 'n' conditions and then count the total number of conditions
satisfied.)
 
D

Dimitre Novatchev

What about this:

<xsl:variable name="vHits">
<xsl:if test="expression1">1</xsl:if>
<xsl:if test="expression2">1</xsl:if>
. . . . . . . . . .
<xsl:if test="expressionN">1</xsl:if>
</xsl:variable>

<xsl:variable name="vhitCount" select="string-length($vHits)"/>


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
 
L

Lizard

Dimitre said:
What about this:

<xsl:variable name="vHits">
<xsl:if test="expression1">1</xsl:if>
<xsl:if test="expression2">1</xsl:if>
. . . . . . . . . .
<xsl:if test="expressionN">1</xsl:if>
</xsl:variable>

<xsl:variable name="vhitCount" select="string-length($vHits)"/>


Looks interesting...I will try that. Thanks!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top