Bonjour,
Comme précisé dans le titre de mon post, je débute en XML. Excusez moi déjà si j'écris certaines bêtises...
Dans le cadre de ma formation, je dois afficher un tableau "clients" qui reprend le nom, le prénom, l'age, le sexe etc.. Ça j'y arrive assez bien.
Ce qui m'est demandé également c'est, pour chaque client, de faire apparaitre leurs adresses (facturation, livraison) dans les lignes en dessous en "colspan"
Je dois pointer sur mon élément je suppose et boucler pour récupérer les adresses qui le concerne. Enfin, je suppose. Le problème, c'est que je ne connais pas encore bien les fonctions et je ne sais pas trop comment faire.
Avez-vous une idée?
Mon XML est bien formé et validé par DTD. le voici:
Ensuite voici mon XSL (avec l'affichage des premières infos):
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE dbclients SYSTEM "C:\wamp\www\exam_2_xml\3_xml_xsl\dbclients.dtd"> <?xml-stylesheet type="text/xsl" href="dbclients.xsl"?> <dbclients> <client> <nom>Dupont</nom> <prenom>David</prenom> <age>35</age> <sexe>homme</sexe> <adresses> <facturation> <rue>Rue de la Concorde</rue> <numero>77</numero> <cp>1000</cp> <ville>Bruxelles</ville> </facturation> <livraison> <rue>Rue de Brabant</rue> <numero>11</numero> <cp>7190</cp> <ville>Ecaussinnes</ville> </livraison> </adresses> <mail>d.dupont@hotmail.com</mail> <codeclient>11111</codeclient> </client> <client> <nom>Dubois</nom> <prenom>Jean</prenom> <age>42</age> <sexe>homme</sexe> <adresses> <facturation> <rue>Rue de la Justice</rue> <numero>88</numero> <cp>1020</cp> <ville>Ixelles</ville> </facturation> <livraison> <rue>Chaussée de Charleroi</rue> <numero>99</numero> <cp>1040</cp> <ville>Etterbeek</ville> </livraison> </adresses> <mail>j.dubois@gmail.com</mail> <codeclient>22222</codeclient> </client> <client> <nom>Deville</nom> <prenom>Georges</prenom> <age>48</age> <sexe>homme</sexe> <adresses> <facturation> <rue>Rue de la Paix</rue> <numero>33</numero> <cp>1080</cp> <ville>Schaerbeek</ville> </facturation> <livraison> <rue/> <numero/> <cp/> <ville/> </livraison> </adresses> <mail>g.deville@gmail.com</mail> <codeclient>33333</codeclient> </client> </dbclients>
Merci pour vos réponses...
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 <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="html" encoding="iso-8859-1"/> <xsl:template match="/"> <html> <head> <title>Clients</title> </head> <table border="1"> <tbody> <tr> <th>nom</th> <th>prenom</th> <th>age</th> <th>sexe</th> <th>mail</th> </tr> <xsl:for-each select="dbclients/client"> <tr> <td> <xsl:value-of select="./nom"/> </td> <td> <xsl:value-of select="./prenom"/> </td> <td> <xsl:value-of select="./age"/> </td> <td> <xsl:value-of select="./sexe"/> </td> <td> <xsl:value-of select="./mail"/> </td> </tr> </xsl:for-each> </tbody> </table> </html> </xsl:template> </xsl:stylesheet>
Partager