Bonjour,
Etudiant en école d'ingénieur, j'ai un module XML à étudier. L'étude se déroule sous forme d'un projet nommé: Transformation XSLT. Le but étant de m'initier au langage XML.
Je dois partir d'un fichier XML contenant des informations d'agendas, le transformer avec XSLT afin de générer une page HTML présentant l'agenda.
Je suis libre de modifier le fichier XML de départ si je veux, voici son schéma actuel:
Je voudrais arriver à une page HTML comme cela:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/xsl" href="transformation.xsl"?> <agenda> <evenement type="administratif"> <titre>Réunion du CA</titre> <lieu>Salle du conseil - Istase</lieu> <jour>Lundi</jour> <heure_debut>10h</heure_debut> <heure_fin>12h</heure_fin> <notes>Parler de la pluie et du beau temps</notes> </evenement> <evenement type="loisir"> <titre>Repas</titre> <lieu>Quick</lieu> <jour>Lundi</jour> <heure_debut>12h</heure_debut> <heure_fin>13h</heure_fin> <notes>Sortir ma carte étudiante pour le 2° burger gratuit</notes> </evenement> <evenement type="projet"> <titre>CSW - E-mailing</titre> <lieu>Salle du conseil</lieu> <jour>Mardi</jour> <heure_debut>9h</heure_debut> <heure_fin>10h</heure_fin> <notes>Secouer les élèves car ça avance pas...</notes> </evenement> <evenement type="todo"> <titre>MAJ Site web</titre> <lieu>Mon bureau</lieu> <jour>Mardi</jour> <heure_debut>10h15</heure_debut> <heure_fin>12h</heure_fin> <notes>Changer la couleur de fond</notes> </evenement> <evenement type="loisir"> <titre>Repas</titre> <lieu>McDo</lieu> <jour>Mardi</jour> <heure_debut>12h</heure_debut> <heure_fin>13h</heure_fin> <notes></notes> </evenement> </agenda>
http://julien.paleni.free.fr/istase/tableau.jpg
J'ai commencé à écrire un début de code pour le XLST afin d'avoir des bases:
La question que je me pose est:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" indent="yes" /> <xsl:template match="/"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> <title>Mon agenda</title> </head> <body> <xsl:apply-templates match="/" /> </body> </html> </xsl:template> <xsl:template match="agenda"> <table border="1"> <tr> <td>Jour</td> <td>Titre</td> <td>Lieu</td> <td>Début</td> <td>Fin</td> <td>Notes</td> </tr> <xsl:apply-templates/> </table> </xsl:template> <xsl:template match="evenement"> <tr> <td><xsl:value-of select="jour"/></td> <td><xsl:value-of select="titre"/></td> <td><xsl:value-of select="lieu"/></td> <td><xsl:value-of select="heure_debut"/></td> <td><xsl:value-of select="heure_fin"/></td> <td><xsl:value-of select="notes"/></td> </tr> </xsl:template> </xsl:stylesheet>
Est-il possible en lisant la valeur de "jour" d'un évènement de l'envoyer dans une colonne de tableau en fonction du résultat?
Dois je modifier le xml de départ en rajoutant un niveau "jour" au dessus des évènements afin d'arriver au résultat?
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <agenda> <jour type="lundi"> <evenement> </evenement> <evenement> </evenement> </jour> <jour type="mardi"> <evenement> </evenement> </jour> .... </agenda>
Partager