How to calculate XSL

I have an xml file like this:

<RESULTS>
    <COMPONENT>
        <COMPONENT_NAME>APP1</COMPONENT_NAME>
        <COMPONENT_TOTAL>26</COMPONENT_TOTAL>
        <COMPONENT_TESTED>4</COMPONENT_TESTED>
    <COMPONENT>

    <COMPONENT>  
         <COMPONENT_NAME>APP2</COMPONENT_NAME>
         <COMPONENT_TOTAL>10</COMPONENT_TOTAL>
         <COMPONENT_TESTED>9</COMPONENT_TESTED>
    </COMPONENT>
</RESULTS>

      

and this is my current c # xsl code:

     StringBuilder sb = new StringBuilder();                   

     sb.AppendLine("<xsl:for-each select='RESULTS/COMPONENT'>");

     sb.AppendLine("<xsl:value-of select='COMPONENT_NAME'/>    " + " = " + "
                    <xsl:value-of select='COMPONENT_TESTED'/>  " + " / " + " 
                    <xsl:value-of select='COMPONENT_TOTAL'/>") ;

      

He gives; APP1 = 4/26 APP2 = 9/10

I want to make a calculation. (checked / total) * 100

so for APP2 (9/10) * 100 = 90 "%"

How can i do this?

So far I have tried these,

string a = "<xsl:value-of select='COMPONENT_NAME'/>"; // not working

sb.AppendLine("<xsl:value-of select= " + "\"" + "sum (COMPONENT/[@'COMPONENT_TESTED'] / COMPONENT/[@'COMPONENT_TOTAL']) " + "\"" + "   />");

sb.AppendLine("<xsl:name='tested' select='COMPONENT_TESTED'/>" + <xsl:name='total'  select='COMPONENT_TOTAL'/>"

      

none of them works :(

+3


source to share


1 answer


Try:

<xsl:value-of select='COMPONENT_TESTED div COMPONENT_TOTAL * 100'/>

      



or, IMHO more correctly:

<xsl:value-of select='format-number(COMPONENT_TESTED div COMPONENT_TOTAL, "#%")'/>

      

+1


source







All Articles