Bonjour à tous,
Après un titre barbar, je vous dois quelques explications.
Le but étant de faire un module Drupal avec la librairie www.highcharts.com/demo/
J'ai toute la mécanique sauf la génération du JS de config qui me pose problème.
je dois obtenir le JS suivant (si c'est plus simple pour vous à comprendre ce sera une chaîne de caractère dans mon module):
Depuis le XML suivant:Code:
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
La structure XML est de moi, elle peut être modifiée.Code:
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122<?xml version="1.0" encoding="UTF-8"?> <root> <chart> <renderTo>container</renderTo> <defaultSeriesType>column</defaultSeriesType> </chart> <title> <text><![CDATA[Monthly Average Rainfall]]></text> </title> <subtitle> <text><![CDATA[Monthly Average Rainfall]]></text> </subtitle> <xAxis> <categories> <categorie>Jan</categorie> <categorie>Feb</categorie> <categorie>Mar</categorie> <categorie>Apr</categorie> <categorie>May</categorie> <categorie>Jun</categorie> <categorie>Jul</categorie> <categorie>Aug</categorie> <categorie>Sep</categorie> <categorie>Oct</categorie> <categorie>Nov</categorie> <categorie>Dec</categorie> </categories> <title></title> </xAxis> <yAxis> <min>0</min> <max></max> <title><![CDATA[Rainfall (mm)]]></title> </yAxis> <legend> <layout>vertical</layout> <align>left</align> <verticalAlign>top</verticalAlign> <x>100</x> <y>70</y> <floating>true</floating> <shadow>true</shadow> </legend> <series> <serie> <name>Tokyo</name> <datas> <data>49.9</data> <data>71.5</data> <data>106.4</data> <data>129.2</data> <data>144.0</data> <data>176.0</data> <data>135.6</data> <data>148.5</data> <data>216.4</data> <data>194.1</data> <data>95.6</data> <data>54.4</data> </datas> </serie> <serie> <name>New York</name> <datas> <data>83.6</data> <data>78.8</data> <data>98.5</data> <data>93.4</data> <data>106.0</data> <data>84.5</data> <data>105.0</data> <data>104.3</data> <data>91.2</data> <data>83.5</data> <data>106.6</data> <data>92.3</data> </datas> </serie> <serie> <name>London</name> <datas> <data>48.9</data> <data>38.8</data> <data>39.3</data> <data>41.4</data> <data>47.0</data> <data>48.3</data> <data>59.0</data> <data>59.6</data> <data>52.4</data> <data>65.2</data> <data>59.3</data> <data>51.2</data> </datas> </serie> <serie> <name>Berlin</name> <datas> <data>42.4</data> <data>33.2</data> <data>34.5</data> <data>39.7</data> <data>52.6</data> <data>75.5</data> <data>57.4</data> <data>60.4</data> <data>47.6</data> <data>39.1</data> <data>46.8</data> <data>51.1</data> </datas> </serie> </series> </root>
Je me suis dis qu'un algo récursif serait le plus approprié mais comme il y a plusieurs façon d'écrire les arguments.
Ma première question, selon vous, quelle est la librairie la plus adaptée pour parser le XML j'ai utilisé DOM (http://eusebius.developpez.com/php5dom/)
Ensuite, je suis parti sur un parcours avec des foreach sur mon objet mais je me rend compte que ce n'est pas viable car j'ai deja 3 boucles imbriqués et je n'ai pas traité toutes les possibilités.
Alors je voudrais repartir sur de bonne bases avec un algo propre d'où ce post :)Code:
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
Si vous avez des questions, n'hésitez pas.
Par avance merci

