[XSLT] Compteur dans un "preceding-sibling::"
Bonjour,
J'ai un fichier XML semblable à un flux RSS tel que celui-ci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<item>
<source>Google News</source>
<title>Actualité Google 1</title>
</item>
<item>
<source>Google News</source>
<title>Actualité Google 2</title>
</item>
<item>
<source>Google News</source>
<title>Actualité Google 3</title>
</item>
<item>
<source>Yahoo</source>
<title>Actualité Yahoo 1</title>
</item>
<item>
<source>Yahoo</source>
<title>Actualité Yahoo 2</title>
</item>
<item>
<source>Yahoo</source>
<title>Actualité Yahoo 3</title>
</item> |
Grâce à une XSLT, je désire obtenir le résultat suivant:
1. Google News
------------
Actualité Google 1
Actualité Google 2
Actualité Google 3
2. Yahoo
------------
Actualité Yahoo 1
Actualité Yahoo 2
Actualité Yahoo 3
J'ai fait un regroupement grâce à la fonction preceding-sibling de la façon suivante :
Code:
1 2 3 4 5 6 7 8 9 10
|
<xsl:apply-templates select="item"/>
<xsl:template match="item">
<xsl:if test="not ( (preceding-sibling::*/source) = source )">
<div><xsl:value-of select="source"/></div>
</xsl:if>
<div><xsl:value-of select="title" /></div>
</xsl:template> |
Problème, je n'arriver pas à numéroter le titre des sources.
Si j'utilise position(), Yahoo se retrouve en 5 au lieu de 2
J'ai regardé la FAQ ainsi qu'un topic en utilisant "count(preceding-sibling::" mais je patauge...
Pouvez-vous m'aider ?