[Résolu] [XSL] Transformation d'un tableau (fichier xml vers html)
Bonjour,
j'ai un petit souci de transformation d'un fichier xml vers HTML.
Voici un extrait de mon fichier XML :
Code:
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
|
1. <!DOCTYPE BIBLIOTHEQUE SYSTEM "bibliot.dtd">
2.
3. <BIBLIOTHEQUE SUJET="Littérature">
4.
5. <LIVRE LANG="Français" GENRE="policier">
6. <AUTEUR>
7. <NOM>Sjöwall</NOM>
8. <PRENOM>Maj</PRENOM>
9. </AUTEUR>
10. <AUTEUR>
11. <NOM>Wahlöö</NOM>
12. <PRENOM>Per</PRENOM>
13. </AUTEUR>
14. <TRADUCTEUR PREFIXE="Traduit de l'anglais par">
15. <NOM>Deutsch</NOM>
16. <PRENOM>Michel</PRENOM>
17. </TRADUCTEUR>
18. <TITRE>L'homme au balcon</TITRE>
19. <EDITEUR>
20. <NOM>Rivages/Noir</NOM>
21. </EDITEUR>
22. <DATEPUB>2008</DATEPUB>
23. </LIVRE> |
Je dois transformer ce fichier en tableau via XSLT pour obtenir un tableau dans ce format :
http://www.hiboox.fr/go/images/inf [...] 2.jpg.html
Voilà donc mon fichier XSLT permettant d'effectuer cette transformation :
Code:
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
1. <?xml version="1.0" encoding="UTF-8"?>
2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3. <xsl:output method="html" version="html4.01" encoding="UTF-8" indent="yes"/>
4.
5.
6. <xsl:template match="/">
7. <html>
8. <head>
9. <title>Bibliothèque</title>
10. </head>
11. <body>
12.
13. <h1>Bibliothèque</h1>
14. <h2>Présentée en tableau, classée par auteur</h2>
15.
16. <xsl:apply-templates select="BIBLIOTHEQUE/LIVRE">
17. <xsl:sort select="AUTEUR/NOM"/>
18. </xsl:apply-templates>
19.
20. </body>
21. </html>
22. </xsl:template>
23.
24.
25. <xsl:template match="LIVRE">
26.
27. <table bgcolor="#F0FFFF" cellspacing="6" cellpadding="6" width="1200" border="1"
28. align="center">
29.
30. <tr>
31. <th width="200">Auteur</th>
32. <th width="200">Traducteur</th>
33. <th width="200">Titre</th>
34. <th width="200">Éditeur</th>
35. <th width="200">Genre</th>
36. <th width="200">Année</th>
37. </tr>
38.
39.
40. <tr>
41. <td width="200">
42. <xsl:value-of select="AUTEUR/NOM"/>, <xsl:value-of select="AUTEUR/PRENOM"/>
43. </td>
44.
45. <td width="200">
46. <xsl:value-of select="TRADUCTEUR/PRENOM"/>*<xsl:value-of
47. select="TRADUCTEUR/NOM"/>
48. </td>
49.
50. <td width="200">
51. <em>
52. <xsl:value-of select="TITRE"/>
53. </em>
54. </td>
55.
56. <td width="200">
57. <xsl:value-of select="EDITEUR/NOM"/><xsl:if test="EDITEUR/LIEU">, <xsl:value-of
58. select="EDITEUR/LIEU"/></xsl:if>
59. </td>
60.
61. <td width="200">
62. <xsl:value-of select="@GENRE"/>
63. </td>
64.
65. <td width="200">
66. <xsl:value-of select="DATEPUB"/>
67. </td>
68.
69. </tr>
70.
71. </table>
72.
73.
74. </xsl:template>
75. </xsl:stylesheet> |
Mais le souci, c'est que les cellules de titre (<th> ) s'affichent à chaque nouvelle rangée, ce que je ne souhaite pas. J'aimerais que la rangée avec ces balises <th> ne s'affichent qu'une seule fois. Je ne vois vraiment pas d'où vient le souci...
Voilà ce que ça donne :
http://www.hiboox.fr/go/images/inf [...] c.jpg.html
C'est peut-être un détail qui cloche, mais je sèche. Je tiens à préciser que je débute en matière d'XML et XSLT :)
Merci beaucoup pour votre aide précieuse !