Bonjour,
je suis totalement débutant en xsl (et totalement nul aussi accessoirement), mais bon j'ai pas le choix je suis obligé de m'y mettre.
Je n'arrive pas à faire une transformation.
Le plus simple c'est de vous montrer un exemple de ce que je souhaite faire.
Je souhaite au final obtenir un tableau, avec dans la colonne de droite les titres des livres et dans la colonne de gauche l'auteur de ce livre
Voici ma dtd
Voici un exemple de fichier xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <!ELEMENT livre (auteurs, titres) > <!ELEMENT auteurs (auteur)* > <!ELEMENT titres (titre)* > <!ELEMENT titre (nom) > <!ATTLIST titre id ID #REQUIRED refdeauteur IDREF #REQUIRED > <!ELEMENT nom (#PCDATA) > <!ELEMENT auteur (nom) > <!ATTLIST auteur id ID #REQUIRED >
Et voici ce que j'ai commencé à faire en xsl
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
17
18
19
20
21
22 <livre> <auteurs> <auteur id="auteur1" > <nom>Dupond</nom> </auteur> <auteur id="auteur2" > <nom>Charles</nom> </auteur> </auteurs> <titres> <titre id="titre1" refdeauteur="auteur1" > <nom>Une histoire vraie</nom> </titre> <titre id="titre2" refdeauteur="auteur2"> <nom>Belles Histoires</nom> </titre> <titre id="titre3" refdeauteur="auteur1"> <nom>Sous le vent</nom> </titre> </titres> </livre>
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
17
18
19
20
21
22
23
24
25
26 <xsl:template match="/"> <html > <head></head> <body><xsl:apply-templates select="livre"/></body> </html> </xsl:template> <xsl:template match="livre"> <table border="4"> <tr> <td>Titres</td> <td>Auteurs</td> </tr> <xsl:apply-templates select='titres/titre'></xsl:apply-templates> </table> </xsl:template> <xsl:template match="titre"> <tr> <td><font face="arial" size="1"><xsl:value-of select='nom'></xsl:value-of></font></td> <td><font face="arial" size="1"><xsl:value-of select='@refdeauteur'</xsl:value-of></font></td> </tr> </xsl:template> </xsl:stylesheet>
Sauf que à la place d'avoir dans la 2ème colonne la valeur de l'attribut refdeauteur, je souhaiterai avoir le nom de cet auteur. Sauf que je ne vois pas du tout comment faire...
Je ne sais pas si j'ai été très clair, si vous avez des questions n'hésitez pas.
Merci d'avance
Partager