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)"/>
您将获得每个学生的平均成绩。
我有这个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)"/>
您将获得每个学生的平均成绩。