XML 使用无键 XSLT 分组

XML Grouping using XSLT without key

我有这个XML数据

<?xml version="1.0" encoding="UTF-8" ?>
 <?xml-stylesheet href="class.xsl" type="text/xsl" ?>
 <université>
     <étudiant>
         <nom>Réjean Tremblay</nom>
         <cours sigle="INF8430" note="89" />
         <cours sigle="INF1030" note="69" />
         <cours sigle="INF1230" note="75" />
    </étudiant>
    <étudiant>
         <nom>Martin Lambert</nom>
         <cours sigle="INF8430" note="75" />
         <cours sigle="INF1030" note="72" />
         <cours sigle="INF1230" note="73" />
    </étudiant>
     <étudiant>
         <nom>Luc Alain</nom>
         <cours sigle="INF9430" note="39" />
         <cours sigle="INF1030" note="89" />
         <cours sigle="INF1230" note="79" />
    </étudiant>
     <étudiant>
         <nom>Olive Saint-Amant</nom>
         <cours sigle="INF8430" note="91" />
         <cours sigle="INF1230" note="99" />
    </étudiant>
 </université>

我需要获得按 nom(姓名)和 cours(课程)分组的每个课程(课程)的平均成绩(注释)。

这是

这是我到目前为止的 xsl 转换,但是我尝试添加 select-value-of-group 的所有内容我都收到转换失败的错误消息。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>

  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Étudiant</th>
      <th>Moyenne</th>
    </tr>
    <xsl:for-each select="université/étudiant">
        <xsl:sort select="nom"/>
         <tr>
            <td><xsl:value-of select="nom"/></td>

            <td><xsl:value-of select="cours/@note"/></td>
        </tr>   
    </xsl:for-each> 

  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

输出应该是这样的

如果你改变:

<xsl:value-of select="cours/@note"/>

至:

<xsl:value-of select="sum(cours/@note) div count(cours)"/>

您将获得每个学生的平均成绩。