regrouper avec xsl des elements de xml

regrouper avec xsl des elements de xml - XML/XSL - Programmation

Marsh Posté le 07-04-2005 à 22:35:38    

Bonjour a tous !
 
Je suis en train de débuter avec XML/XSL et pour cela,
j'ai choisit de pour commencer le tuto de Van Lancker Luc
(www.developpez.biz/downloads/xml/cours-xml-xls.pdf)
 
Voici l'exemple qu'il utilise (le code XML):

Code :
  1. <?xml version="1.0"?>
  2. <compilation>
  3.  <mp3>
  4.   <titre>Foule sentimentale</titre>
  5.   <artiste>Alain Souchon</artiste>
  6.  </mp3>
  7.  <mp3>
  8.   <titre>Solaar pleure</titre>
  9.   <artiste>MC Solaar</artiste>
  10.  </mp3>
  11.  <mp3>
  12.   <titre>Le baiser</titre>
  13.   <artiste>Alain Souchon</artiste>
  14.  </mp3>
  15.  <mp3>
  16.   <titre>Pourtant</titre>
  17.   <artiste>Vanessa Paradis</artiste>
  18.  </mp3>
  19.  <mp3>
  20.   <titre>Chambre avec vue</titre>
  21.   <artiste>Henri Salvador</artiste>
  22.  </mp3>
  23. </compilation>


 
il utilise différentes feuille de style xsl pour generer des tableaux html de la forme :
 
TITRE               AUTEUR    
Foule sentimentale  Alain Souchon      
Solaar pleure       MC Solaar    
Le baiser           Alain Souchon  
...
 
Voici  le code Xsl :

Code :
  1. <?xml version='1.0'?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  3. <xsl:template match="/">
  4. <html>
  5. <body>
  6. <table border="1" cellspacing="0" cellpadding="3">
  7. <tr bgcolor="#FFFF00">
  8. <td>Titre</td>
  9. <td>Artiste</td>
  10. </tr>
  11. <xsl:for-each select="compilation/mp3">
  12. <tr>
  13. <td><xsl:value-of select="titre"/></td>
  14. <td><xsl:value-of select="artiste"/></td>
  15. </tr>
  16. </xsl:for-each>
  17. </table>
  18. </body>
  19. </html>
  20. </xsl:template>
  21. </xsl:stylesheet>


 
La question que je me pose est la suivante :
Est -il possible de la même manière de regrouper les titres par auteur ?
pour obtenir un truc dans le genre :
 
TITRE                               AUTEUR    
Foule sentimentale, Le baiser       Alain Souchon      
Solaar pleure                       MC Solaar    
...
 
j'avais pensé à un truc du style :
<xsl:for-each select="compilation/mp3[artiste='Alain Souchon']">
 
mais cela m'oblige de répéter cette ligne pour chaque auteur dans mon fichier xsl, il est compréhensible que pour beaucoup d'auteurs ça deviens super pénible ...
n'est -il pas possible de le faire automatiquement et de maniere récursive ?
si oui comment ?
 
Merci d'avance pour vos lumieres et Merci d'avoir pris le temps de me lire ;)

Reply

Marsh Posté le 07-04-2005 à 22:35:38   

Reply

Marsh Posté le 07-04-2005 à 23:48:51    

Peut-être en utilisant des variables ?
http://erwy.developpez.com/variable/

Reply

Marsh Posté le 08-04-2005 à 01:56:10    

voir <xsl:sort>

Reply

Marsh Posté le 08-04-2005 à 09:51:15    

benou a écrit :

voir <xsl:sort>


 
il me semble avoir déja essayé mais sans succes ...
 
kalex : ok je vais regarder les variables !
 
Merci a tous les deux !


Message édité par Mentxa le 08-04-2005 à 09:52:12
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed