【问题标题】:Get the average of elements values in xsl获取xsl中元素值的平均值
【发布时间】:2013-04-25 18:59:16
【问题描述】:

我今天第一次接触 xsl。我拥有的 XML 文件如下所示:

<student_course>
<students>
    <student num="">
    <name gender=""></name>
    <course cid="1"></course>
    <course cid="2"></course>
    <course cid="3"></course>
    <course cid="4"></course>
    <comments></comments>
    </student>  
</students>
<courses>
    <course cid="1"></course>
    <course cid="2"></course>
    <course cid="3"></course>
    <course cid="4"></course>
</courses>
</student_course>

有 10 多个学生,我需要为每个学生打印出每门课程的所有成绩。我已经使用 for-each 完成了。我需要做的是在列的底部显示该课程的平均成绩(学生/课程)一些东西,但这似乎不起作用,每次我尝试创建一个变量时,我只能在设置后立即调用它,我一定是做错了什么。如何获得student_courses/students/student/course[@cid] 下所有值的平均值?

目前我让我的 xsl 显示一个包含 4 列和 11 行的表格(1 行用于标题,10 行用于学生成绩),然后在第 12 行显示平均值。

提前致谢!

【问题讨论】:

  • 如果您的示例数据包含您想要平均的成绩值,并且如果您向我们展示了您希望输出的样子,这将对我们有所帮助。
  • 好点,我只是想出了我需要什么,所以我要发布我自己的答案。

标签: xml variables xslt average


【解决方案1】:

我想通了。要获得平均值,最简单的方法是使用 for-each 以及 sum() 和 count() 函数。我只需要在我希望显示平均值的地方添加这个:

<xsl:value-of select="sum(/student_course/students/student/course[@cid='1']) div count(/student_course/students/student/course[@cid='1'])"/>

只需更改不同课程的 cid 值。

【讨论】:

  • 您还可以在xsl:for-each 之外使用同一行代码,这样它就只显示一次。
猜你喜欢
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 2020-07-07
  • 2020-07-12
相关资源
最近更新 更多