Bonjour à tous,
j'ai un probleme dans l'affichage sous forme xml et json. voici un exemple d'un affichage xml:
mon souci est d'avoir un affichage telque:
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93 <response> <application> <application id="1"> <name> <![CDATA[ ap1 ]]> </name> <icon> <![CDATA[ C:/wamp/www/betaappli/web/bundles/betappliapplication/uploads/applicationsIcons/1.jpg ]]> </icon> </application> <build id="1"> <name> <![CDATA[ 1.0.1 ]]> </name> <upload> <![CDATA[ C:/wamp/www/betaappli/web/bundles/betappliapplication/uploads/applications/android/1/1.apk ]]> </upload> <uploaddate> <year>2012</year> <month>4</month> <day>30</day> <hour>10</hour> <minute>16</minute> <second>9</second> </uploaddate> </build> </application> <application> <application id="1"> <name> <![CDATA[ ap1 ]]> </name> <icon> <![CDATA[ C:/wamp/www/betaappli/web/bundles/betappliapplication/uploads/applicationsIcons/1.jpg ]]> </icon> </application> <build id="2"> <name> <![CDATA[ 6.3.9 ]]> </name> <upload> <![CDATA[ C:/wamp/www/betaappli/web/bundles/betappliapplication/uploads/applications/android/1/2.apk ]]> </upload> <uploaddate> <year>2012</year> <month>4</month> <day>30</day> <hour>10</hour> <minute>16</minute> <second>37</second> </uploaddate> </build> </application> <application> <application id="3"> <name> <![CDATA[ ap3 ]]> </name> <icon> <![CDATA[ C:/wamp/www/betaappli/web/bundles/betappliapplication/uploads/applicationsIcons/3.jpg ]]> </icon> </application> <build id="4"> <name> <![CDATA[ 9.8.4 ]]> </name> <upload> <![CDATA[ C:/wamp/www/betaappli/web/bundles/betappliapplication/uploads/applications/android/3/4.apk ]]> </upload> <uploaddate> <year>2012</year> <month>4</month> <day>30</day> <hour>10</hour> <minute>19</minute> <second>10</second> </uploaddate> </build> </application> </response>
cad associé a chaque balise application id=" " par exemples application id="1" ses builds et non avoir des duplications de cette balise ayant chaque fois un build seulement.
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 <applications> <application id="1"> <build id="1"> </build> <build id="2"> </build> </application> <application id="2"> <build id="1"> ...... </build> <build id="2"> .... </build> </application> </applications>
mon code et le suivant:
Est ce que vous avez une idée? Merci
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
73
74 <?php if($user) { foreach($user->getTeams() as $teams) { foreach($teams->getBuilds() as $builds) { $applications = $em->getRepository('BetappliApplicationBundle:Application')->findByPlatform($platform); if(!$applications) { $xml = $serializer->serialize(array('error' => $error), 'xml'); return new Response($xml); } foreach ($applications as $application) { if($application->getId()==$builds->getApplication()->getId()) { $val=1; foreach ($application->getBuilds() as $build) { if($build->getId()==$builds->getId()) { $Date=$build->getUploadDate(); $dt= new DateTimeToArrayTransformer(); $d=$dt->transform($Date); $id=$build->getId(); $dir =$build->getUploadRootDir(); if($platform=='Android'){ $fileName=$builds->id.'.apk'; } else { $fileName=$builds->id.'.ipa'; } $xml_app[$i]=array('application'=>array('@id'=>$application->getId(),'name'=>$application->getapplicationName(), 'icon'=>$application->getAbsolutePath_icon())); $xml_build[$i]=array('build'=>(array('@id'=>$build->getId(),'name'=>$build->getbuildName(),'upload' => $build->getUploadRootDir_build($fileName), 'uploaddate' => $d))); $xml[$i]=array_merge($xml_app[$i],$xml_build[$i]); $i++; }//fin if($build->getId()==$build->getId()) }//fin foreach ($application->getBuilds() as $build) }// fin if($application->getId()==$builds->getApplication()->getId()) }// fin foreach ($applications as $application) // }//fin foreach($builds->getApplication() as $applications) }//fin foreach($builds as $builds) }//fin foreach($teams as $teams) if($val==1) { $xml = array_map('unserialize', array_unique(array_map('serialize', $xml))); $xml = $serializer->serialize(array('application'=>$xml), 'xml'); //$xml = $serializer->serialize($xml, 'xml'); return new Response($xml); } else { return new Response(); } }//fin if($user) ?>
Partager