Bonjour,
je suis en train d'apprendre le XML et je veux transformer un XML en html par XSL, mais j'arrive pas. Je sais que l'erreur dans le XSL mais où je sais pas, voici mes Codes:
XML:
DTD
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 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE bouteille SYSTEM "TP2.dtd"> <?xml-stylesheet type="text/xsl" href="TP2.xsl"?> <bouteille> <source> <nom>Sidi Ali</nom> <codeBar>2738900078925</codeBar> <volume>150</volume> <composition> <ion> <materiau>calsium</materiau><quantite>22.4</quantite> <materiau>magnesium</materiau><quantite>7.3</quantite> <materiau>chlorure</materiau><quantite>18</quantite> <materiau>nitrates</materiau><quantite>5.4</quantite> </ion> <autre_materiau>fer</autre_materiau> </composition> <lieu> <ville>Sidi Ali Chérif</ville> <departement>Khémisset</departement> </lieu> </source> <source> <nom>Ain Atlas</nom> <codeBar>5345765499077</codeBar> <volume>50 </volume> <composition> <ion> <materiau>calsium</materiau><quantite>70</quantite> <materiau>magnesium</materiau><quantite>40</quantite> <materiau>chlorure</materiau><quantite>220</quantite> <materiau>nitrates</materiau><quantite>4</quantite> </ion> <autre_materiau>pH = 7</autre_materiau> </composition> <lieu> <ville>Hammou Guemguem</ville> <departement>Fès</departement> </lieu> </source> <source> <nom>Ain Sais</nom> <codeBar>4509888065898</codeBar> <volume>50</volume> <composition> <ion> <materiau>calsium</materiau><quantite>11.5</quantite> <materiau>magnesium</materiau><quantite>8</quantite> <materiau>chlorure</materiau><quantite>13.5</quantite> <materiau>nitrates</materiau><quantite>6.3</quantite> </ion> <autre_materiau>silice</autre_materiau> </composition> <lieu> <ville>Ain Sais</ville> <departement>Khénifra</departement> </lieu> </source> </bouteille>
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 <!ELEMENT bouteille (source*)> <!ELEMENT source (nom,codeBar,volume,composition,lieu)> <!ELEMENT nom (#PCDATA)> <!ELEMENT codeBar (#PCDATA)> <!ELEMENT volume (#PCDATA)> <!ATTLIST volume unite CDATA "cl"> <!ELEMENT composition (ion+,autre_materiau*)> <!ELEMENT ion (materiau, quantite)+> <!ELEMENT materiau (#PCDATA)> <!ELEMENT quantite (#PCDATA)> <!ATTLIST quantite unite CDATA "mg/l"> <!ELEMENT autre_materiau (#PCDATA)> <!ELEMENT lieu (ville, departement)> <!ELEMENT ville (#PCDATA)> <!ELEMENT departement (#PCDATA)>
Merci d'avance.
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 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="html4.01" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" /> <xsl:template match="/"> <html> <head> </head> <body> <div class="bouteille"> <xsl:for-each select="bouteille/source"> <h2>Bouteille de marque <xsl:value-of select="nom"/></h2> <h3>Code barre : <xsl:value-of select="codeBar"/></h3> <h3>Volume : <xsl:value-of select="volume"/> <xsl:value-of select="volume@unite"/> </h3> <h3>composition :</h3> <xsl:for-each select="composition/ion"> <p><xsl:value-of select="materiau"/> <xsl:value-of select="quantite"/> <xsl:value-of select="quantite@unite"/></p> </xsl:for-each> <h3>Lieu d'origine : </h3> <p>Ville de <h3><xsl:value-of select="lieu/ville"/></h3>, dans le departement <h3><xsl:value-of select="lieu/departement"/></h3></p> </xsl:for-each> </div> </body> </html> </xsl:template> </xsl:stylesheet>
Partager