You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XSLT计算重复testsuite元素的属性总和?

问题原因

你当前的代码用<xsl:for-each>循环每个testsuite元素,在循环里执行sum(@tests)时,@tests仅指向当前循环的单个testsuite的属性,所以sum()计算的是单个数值(比如5或6),最终输出每个testsuite的单独值,而非总和。

解决方法

不需要循环遍历每个testsuite,直接用sum()函数一次性计算所有testsuite对应属性的总和即可。以下是修正后的代码示例:

<tr>
  <th style="text-align: left">Total</th>
  <td><xsl:value-of select="sum(../testsuite/@tests)"/></td>
  <td><xsl:value-of select="sum(../testsuite/@failures)"/></td>
  <td><xsl:value-of select="sum(../testsuite/@errors)"/></td>
  <td><xsl:value-of select="sum(../testsuite/@skipped)"/></td>
</tr>

代码说明

  • sum(../testsuite/@tests):选择所有上级节点下的testsuite元素的tests属性,sum()会自动将这些属性值转为数值后求和,得到所有用例的总数。
  • 同理,sum(../testsuite/@failures)、sum(../testsuite/@errors)、sum(../testsuite/@skipped)分别计算失败、错误、跳过用例的总和。

这样就能输出所有testsuite对应属性的汇总值,而不是单个元素的数值。

内容的提问来源于stack exchange,提问作者Nachikethas E

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 19:48:22