Bonjour
Je dois créer des tableaux dynamique en html a partir d'un fichier XML. j'ai réussi a créer mes tableaux mais lorsque les données ne sont pas présentees dans le fichier XML, j'obtiens des cases vide. Je voudrais mettre le caractère ':' lorsque la donnée n'existe pas dans le fichier XML
Voila un extrait de mon XML
Et voici le code XML que j'utilise
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 <xml-yearbook> <document-header> <name>Yearbook data for the table T1A</name> <date>2009.11.24 17:44:01</date> </document-header> <data> <tablename>t1a</tablename> <ele-count>4024</ele-count> <list-country><code>4000</code><label>EU(2)</label></list-country> <list-country><code>EUXX</code><label>World(1)</label></list-country> ... <list-country><code>0072</code><label>UKRAINE</label></list-country> <list-year><year>1958</year></list-year> ... <list-year><year>2008</year></list-year> <list-ele> <ele declaring = "EUXX" partner = "1000" product = "TOTAL" flow = "1" year = "2007" period = "52" flag = "VALUE" value = "1434009715.1100000" ></ele> <ele declaring = "EUXX" partner = "1000" product = "TOTAL" flow = "2" year = "2007" period = "52" flag = "VALUE" value = "1241498059.5700000" ></ele> <ele declaring = "EUXX" partner = "1000" product = "TOTAL" flow = "1" year = "2008" period = "52" flag = "VALUE" value = "1565034240.0100000" ></ele> <ele declaring = "EUXX" partner = "1000" product = "TOTAL" flow = "2" year = "2008" period = "52" flag = "VALUE" value = "1306549465.5400000" ></ele> <ele declaring = "EUXX" partner = "1000" product = "TOTAL" flow = "1" year = "2004" period = "52" flag = "VALUE" value = "1032358067.0700000" ></ele> ...
je n'arrive pas a intégrer dans ma fonction "Find_Value", le fait qu'il a trouver ou non une valeur.
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 <xsl:template match="/"> <html> <body> <table border="1" cellspacing="0" cellpadding="5"> <tr><td></td> <xsl:for-each select="//data/list-country"> <td><xsl:value-of select="label"/></td> </xsl:for-each> </tr> <tr><td colspan="25">Value</td></tr> <xsl:for-each select="//data/list-year"> <xsl:variable name="CurYear" select="year"/> <tr> <td><xsl:value-of select="year"/></td> <xsl:for-each select="//data/list-country"> <td> <xsl:call-template name="Find_Value"> <xsl:with-param name="Declaring" select="code" /> <xsl:with-param name="Year" select="$CurYear" /> <xsl:with-param name="Flow" select="1" /> <xsl:with-param name="Flag" select="'VALUE'" /> <xsl:with-param name="Coef" select="0.000001" /> </xsl:call-template> </td> </xsl:for-each> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> <xsl:template name="Find_Value"> <xsl:param name="Declaring" select="XXX" /> <xsl:param name="Year" select="XXX" /> <xsl:param name="Flow" select="XXX" /> <xsl:param name="Flag" select="XXX" /> <xsl:param name="Coef" select="0" /> <xsl:for-each select="//data/list-ele/ele"> <xsl:if test="@declaring = $Declaring and @year = $Year and @flow = $Flow and @flag = $Flag "> <xsl:value-of select="format-number(@value * $Coef, '### ##0,0', 'european')"/> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Auriez-vous une solution a me proposer?
La seule solution que je vois pour le moment est de rajouter les lignes manquantes dans le fichier XML avec pour valeur ':' mais cette solution ne m'arrange pas du tout...
Merci d'avance
Partager