1

今日初めて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 行目に平均を表示しています。

ありがとうございます!

4

1 に答える 1

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値を変更するだけです。

于 2013-04-25T19:34:35.950 に答える