RE: [xsl] Percentage in XSL

Subject: RE: [xsl] Percentage in XSL
From: "Josh Canfield" <Josh.Canfield@xxxxxxxxxxxx>
Date: Thu, 22 Jan 2004 11:57:27 -0800
Is there value added by storing the count in an RTF? Why not just use

<xsl:value-of select="count(a) div count(b) * 100"/>

> The problem with the syntax -
> <xsl:variable name="Percentual_Prod_Individual"
> select="number($var_Individual) /
> number($var_Soma_trabalho_em_eventos) *
> 100"/>
> is, that expression in select="" clause should
> evaluate to a node-set .

This statement is incorrect, the XPath in the select attribute does not need to evaluate to a node-set, consider <xsl:variable name="aString" select="'my string here'"/>. The problem with the above is, as other people have pointed out, the use of the path separator (/) instead of the div operator for the division.

Josh
-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Mukul Gandhi
Sent: Thursday, January 22, 2004 7:05 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Percentage in XSL


Hi Eder,
  I have tried to solve the problem with a small XML
file below --

<?xml version="1.0" encoding="UTF-8"?>
<root>
 <a></a>
 <b></b>
 <a></a>
</root>

The XSL to calculate percentage is --

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="xml" version="1.0"
encoding="UTF-8" indent="yes"/>
	
<xsl:template match="/root">
  <xsl:variable name="RTF">
    <a>
      <xsl:value-of select="count(a)"/>
    </a>
    <b>
      <xsl:value-of select="count(b)"/>
    </b>
  </xsl:variable>
		
  <xsl:value-of select="msxsl:node-set($RTF)/a div 
msxsl:node-set($RTF)/b * 100" />

</xsl:template>

</xsl:stylesheet>

The above XSL prints 200, which is 2 /1 * 100 .

I have used the *node-set* function .

The problem with the syntax -
<xsl:variable name="Percentual_Prod_Individual"
select="number($var_Individual) /
number($var_Soma_trabalho_em_eventos) *
100"/>

is, that expression in select="" clause should
evaluate to a node-set .

Regards,
Mukul

 --- Eder de Oliveira <eder@xxxxxxxxxxxxx> wrote: >
Hi,
> 
> I am trying percentage in xsl document, the divide
> and multiply operator in
> xsl is: divide = ( / ) and multiply = ( * ) ?
> 
> My code:
> 
> <xsl:variable name="var_Soma_trabalho_em_eventos"
>
select="count(PRODUCAO-BIBLIOGRAFICA/TRABALHOS-EM-EVENTOS/TRABALHO-EM-EVENTO
> S/@*)"/>
> 
> <xsl:variable name="var_Individual"
>
select="count(PRODUCAO-BIBLIOGRAFICA/TRABALHOS-EM-EVENTOS/TRABALHO-EM-EVENTO
> S[(count(AUTORES/@ORDEM-DE-AUTORIA)) = 1])"/>
> 
> Here account a percentage, my question is: The
> account below is correct?
> 
> <xsl:variable name="Percentual_Prod_Individual"
> select="number($var_Individual) /
> number($var_Soma_trabalho_em_eventos) *
> 100"/>
> 
> Anyone can I help me ?
> 
> Thanks
> Eder
> 
> 
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
>  

________________________________________________________________________
Yahoo! India Mobile: Download the latest polyphonic ringtones.
Go to http://in.mobile.yahoo.com

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread