获取xsl中元素值的平均值

时间:2013-04-25 18:59:17

标签: xml variables xslt average

我今天第一次处理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。我需要做的是,在列的底部,显示该课程的平均成绩(学生/课程)我认为变量将是要走的路,并在for-each中递增并除以它或者什么东西,但这似乎不起作用,每次我尝试制作一个变量我只能在设置后立即调用它,我一定做错了。如何获得student_courses/students/student/course[@cid]下所有值的平均值?

目前我的xsl显示一个包含4列11行的表格(标题为1行,学生成绩为10行),然后是第12行以获得平均值。

先谢谢!

1 个答案:

答案 0 :(得分:3)

我明白了。要获得平均值,最简单的方法是使用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值。