Bonjour à toutes et à tous.
J'aimerais établir la liste des attributs place distincts de mon fichier XML. C'est à dire dans le cas ci-dessous obtenir la liste "Hoi An, Kontum".
Code XML : 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
17
18
19
20
21
22
<gallery version="0.4" images_root="./images/" thumbs_root="./images/thumbs/" thumbs_size="125">
  <photo photograph="didier" date="2007:12:28 07:53:42" place="Hoi An">
    <comment></comment>
    <thumb>7077c6296c5a8e3125f4269e0d4f51ab</thumb>
    <filename>Affiche-7.jpg</filename>
  </photo>
  <photo photograph="didier" date="2007:12:28 07:53:49" place="Hoi An">
    <comment></comment>
    <thumb>490b6d9b6a48f6b4d63c1125b7c70116</thumb>
    <filename>Affiche-8.jpg</filename>
  </photo>
<photo photograph="yankel" date="2007:12:27 13:07:55" place="Kontum">
    <comment></comment>
    <thumb>3c22a1a1545519f37316ec46db0b0871</thumb>
    <filename>P1020519.JPG</filename>
  </photo>
  <photo photograph="yankel" date="2007:12:28 03:43:47" place="Hoi An">
    <comment></comment>
    <thumb>751a48d7bd6b64589b2ada9f94e44d7e</thumb>
    <filename>P1020539.JPG</filename>
  </photo>
</gallery>

J'ai vu divers exemple de la méthode muench afin de trier les noeuds, mais jamais les attributs :/

J'ai besoin d'établir cette liste au sein du template gallery (dans le for-each)
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<xsl:key name="photo" match="photo" use="place"/> 
<xsl:template match="gallery">
   <xsl:for-each select="photo/@place[generate-id(.)=generate-id(key('photo', .)[1]/@place)]">
      <xsl:sort select="."/>
      <xsl:element name="photo"> 
         <xsl:copy-of select="//photo[@place = current()]"/> 
      </xsl:element>
   </xsl:for-each>
</xsl:template>

Merci de voter aide