2015-06-30 2 views
1

У меня есть этот XML данныеXML Группировка с помощью XSLT без ключа

<?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 (имя) и Кур (курс).

это

это XSL преобразование У меня есть до сих пор, но все, что я пытался добавить избранную-значение-в-группы я получаю сообщения об ошибках, которые перерабатывают не удалось.

<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> 

Выход должен быть чем-то вроде этого

enter image description here

+0

«* Мне нужно получить средний класс (примечание) для каждого курса (курса), сгруппированного по номенклатуре (имени) и курсу (курс). *« Это совсем не то, что показывает ваш результат. Вы показываете среднее для каждого учащегося, которое не требует группировки, поскольку оценки каждого ученика уже сгруппированы внутри элемента «étudiant». –

+0

Каково значение фразы «без ключа» в вашем названии? –

ответ

3

Если вы меняете:

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

к:

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

вы получите среднюю оценку длякаждый студент.

+0

Да, это сработало. Я был так близко. Я пробовал что-то, но никогда не думал, что фактически добавлю сумму и div непосредственно к выбору. Я очень ценю это. Благодарю. – user1082748

Смежные вопросы