如何在 XSL 上进行计算

本文关键字:计算 XSL | 更新日期: 2023-09-27 18:32:06

>我有一个这样的xml文件:

<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>

这是我当前的 xsl C# 代码:

     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'/>") ;

它给了;APP1 = 4/26 APP2 = 9/10

我想做一个计算。(测试/总计)*100

所以对于 APP2 (9/10)*100 = 90 "%"

我该怎么做?

到目前为止,我尝试了这些,

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'/>"

他们都不起作用:(

如何在 XSL 上进行计算

尝试:

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

或者,恕我直言:

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