Bonjour,

Je souhaite faire une conversion d'un fichier XML en CSV, j'ai lu pas mal d'article sur le net mais ils sont tous plus compliqués les uns que les autres.

Voici le script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
$xml	= new XML::Simple;
$data 	= $xml->XMLin($FichierXML);
 
$Questions = $data->{'Questions'} ;
$TabQuestion = $Questions->{'Question'};
 
print Dumper($TabQuestion) ;
Le résultat de ce code est :
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
 
$VAR1 = [
          {
            'NombreReponses' => '1',
            'EtapeReponses' => '1',
            'Reponses' => {
                          'Reponse' => {
                                       'CodeLieuDeces' => '27000',
                                       'NumeroActeDeces' => '129/3',
                                       'DateNaissance' => {
                                                          'JourNaissance' => '25',
                                                          'MoisNaissance' => '10',
                                                          'AnneeNaissance' => '1956'
                                                        },
                                       'Sexe' => 'M',
                                       'DateDeces' => {
                                                      'MoisDeces' => '04',
                                                      'AnneeDeces' => '2003',
                                                      'JourDeces' => '26'
                                                    },
                                       'Prenoms' => {
                                                    'Prenom2' => 'MICHEL',
                                                    'Prenom1' => 'JOSE'
                                                  },
                                       'CommuneNaissance' => 'PARIS',
                                       'TypeDeces' => 'N',
                                       'NumeroReponse' => '1',
                                       'CodeLieuNaissance' => '75000',
                                       'Nom' => 'DUPONT'
                                     }
                        },
            'NumeroQuestion' => '1'
          },
          {
            'NombreReponses' => '2',
            'EtapeReponses' => '3',
            'Reponses' => {
                          'Reponse' => [
                                       {
                                         'CodeLieuDeces' => '76000',
                                         'NumeroActeDeces' => '0007765',
                                         'DateNaissance' => {
                                                            'JourNaissance' => '18',
                                                            'MoisNaissance' => '1',
                                                            'AnneeNaissance' =>'1903'
                                                          },
                                         'Sexe' => 'F',
                                         'DateDeces' => {
                                                        'MoisDeces' => '01',
                                                        'AnneeDeces' => '2008',
                                                        'JourDeces' => '02'
                                                      },
                                         'Prenoms' => {
                                                      'Prenom1' => 'MARYSE'
                                                    },
                                         'CommuneNaissance' => 'TOURS',
                                         'TypeDeces' => 'A',
                                         'NumeroReponse' => '1',
                                         'CodeLieuNaissance' => '37015',
                                         'Nom' => 'DE DURAND'
                                       },
                                       {
                                         'CodeLieuDeces' => '61014',
                                         'NumeroActeDeces' => 'ALENCON',
                                         'DateNaissance' => {
                                                            'JourNaissance' => '25',
                                                            'MoisNaissance' => '08',
                                                            'AnneeNaissance' =>'1903'
                                                          },
                                         'Sexe' => 'F',
                                         'DateDeces' => {
                                                        'MoisDeces' => '06',
                                                        'AnneeDeces' => '1999',
                                                        'JourDeces' => '06'
                                                      },
                                         'Prenoms' => {
                                                      'Prenom2' => 'JOCELYNE',
                                                      'Prenom1' => 'MARYSE'
                                                    },
                                         'CommuneNaissance' => 'TOURS',
                                         'TypeDeces' => 'N',
                                         'NumeroReponse' => '2',
                                         'CodeLieuNaissance' => '37016',
                                         'Nom' => 'DE DURAND'
                                       }
                                     ]
                        },
            'NumeroQuestion' => '2'
          }
        ];
Je n'arrive pas à interpréter le résultat, je voudrai faire "sauter" les '[]' et boucler (avec un for ou une méthode prédéfinie via XML::Simple) sur les '{}'...

Merci d'avance.