У меня есть xml-файл с этой структурой
<?xml version='1.0' encoding='UTF-8'?>
<students>
<student>
<number>1</number>
<firstname>Sandrine</firstname>
<name>BERTIN</name>
<gender>F</gender>
<highschool>de la Côte d'Albâtre</highschool>
<city>Saint-Valéry-en-Caux</city>
<specialization>Physique chimie</specialization>
</eleve>
[...]
</students>
Конечным результатом должен быть документ в формате PDF, каждая школа будет отображаться на новой странице вместе с другой информацией (список всех учащихсяпринадлежность к этой школе и т. д.). Одной из этих данных будет общее количество учеников, где пол = «М» (или «F»).
Это часть моего кода:
<fo:page-sequence master-reference="book">
<fo:flow flow-name="xsl-region-body">
<xsl:for-each select="students/student[count(. | key('cityKey',city)[1]) = 1]">
<xsl:sort select="city" />
<xsl:for-each select="key('cityKey', city)[count(. | key('highschoolKey',highschool)[1]) = 1]">
<xsl:sort select="highschool" />
<fo:block break-before="page"><xsl:value-of select="highschool"/> </fo:block>
<fo:block> City : <xsl:value-of select="city" /> </fo:block>
<!-- <fo:block> Number of male students : <xsl:value-of select="count(/students/student[gender='M'])" /> </fo:block> -->
</xsl:for-each>
</xsl:for-each>
</fo:flow>
</fo:page-sequence>
Я хотел бы получить количество учеников мужского пола () и распечатать его для каждой «старшей школы» (так различается число на каждой странице / старшей школе моего документа) в моем xsl: for-each. Но я либо получаю всех студентов мужского пола из всех вузов (/ студентов / учеников [пол = 'М']), либо ничего.
В идеале это будет выглядеть так:
**de la Côte d'Albâtre**
City : Saint-Valéry-en-Caux
Number of male students: " "
Number of female students: " "
List of all the student in a Table : [...]
Заранее спасибо