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 :
- <?xml version="1.0"?>
- <compilation>
- <mp3>
- <titre>Foule sentimentale</titre>
- <artiste>Alain Souchon</artiste>
- </mp3>
- <mp3>
- <titre>Solaar pleure</titre>
- <artiste>MC Solaar</artiste>
- </mp3>
- <mp3>
- <titre>Le baiser</titre>
- <artiste>Alain Souchon</artiste>
- </mp3>
- <mp3>
- <titre>Pourtant</titre>
- <artiste>Vanessa Paradis</artiste>
- </mp3>
- <mp3>
- <titre>Chambre avec vue</titre>
- <artiste>Henri Salvador</artiste>
- </mp3>
- </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 :
- <?xml version='1.0'?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
- <xsl:template match="/">
- <html>
- <body>
- <table border="1" cellspacing="0" cellpadding="3">
- <tr bgcolor="#FFFF00">
- <td>Titre</td>
- <td>Artiste</td>
- </tr>
- <xsl:for-each select="compilation/mp3">
- <tr>
- <td><xsl:value-of select="titre"/></td>
- <td><xsl:value-of select="artiste"/></td>
- </tr>
- </xsl:for-each>
- </table>
- </body>
- </html>
- </xsl:template>
- </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