我今天第一次处理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行以获得平均值。
先谢谢!
答案 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值。