bonjour,
à partir du fichier xml suivant je cherche à récupérer un seul joueur par poste, par exemple : un seul gardien, un seul arrière central, etc.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<equipe>
  <joueur><nom>Hugo Lloris</nom>
    <poste code="gardien">Gardien</poste></joueur>
  <joueur><nom>Joan Hartock</nom>
    <poste code="gardien">Gardien</poste></joueur>
  <joueur><nom>Rémy Vercoutre</nom>
    <poste code="gardien">Gardien</poste></joueur>
  <joueur><nom>François Clerc</nom>
    <poste code="arriere_droit_WM">Arrière droit</poste></joueur>
  <joueur><nom>Cris</nom>
    <poste code="arriere_central_WM">Arrière central</poste></joueur>
  <joueur><nom>Jean-Alain Boumsong</nom>
    <poste code="arriere_central_WM">Arrière central</poste></joueur>
  <joueur><nom>Mathieu Bodmer</nom>
    <poste code="arriere_central_WM">Arrière central</poste></joueur>
</equipe>
Pour chaque joueur, je vérifie donc le poste et je ne l'affiche que si aucun des joueurs déjà affichés n'occupait le même poste :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<xsl:template match="equipe">
<xsl:for-each select="joueur">
  <xsl:if test="not(preceding-sibling::*[poste/@code != 'current()poste/@code'])">
    <xsl:value-of select="nom/text()"/>
  </xsl:if>
</xsl:for-each>
</xsl:template>
Mais ça ne marche pas , pouvez-vous m'aider svp ?

Merci d'avance !