Bonjour,
J'utilise un script PERL et son module XML::Simple pour parser un fichier XML et récupérer le contenu de différents tags.
Mon probléme est que la structure de ce fichier xml n'est pas la même tout le long.
par exemple pour la majorité des cas la structure xml se présente comme ceci:
Code xml : 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 <partner name="titi"> <start>09/10/2006 23:24:03</start> <end>09/10/2006 23:52:19</end> <duration>00:28:15</duration> <files> <file> <datelastupdate>10/10/2006 00:00:00</datelastupdate> </file> </files> </partner> <partner name="tata"> <start>09/10/2006 23:24:03</start> <end>09/10/2006 23:52:19</end> <duration>00:28:15</duration> <files> <file> <datelastupdate>10/10/2006 00:00:00</datelastupdate> </file> </files> </partner>
Pour ce type de traitement le probleme ne se pose pas et je récupere le tag <datelastupdate> comme ceci:
Code perl : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach $e (@{$data->{partner}}) { datelastupdate=$e->{files}->{file}->{datelastupdate}; }
Par contre quand la structure est modifiée (quand il y a plusieurs tag <file>d'affilé)je ne vois pas comment récupérer ce tag <datelastupdate> à l'intérieur des balises <file>.
Code xml : 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 <partner name="titi"> <start>09/10/2006 23:24:03</start> <end>09/10/2006 23:52:19</end> <duration>00:28:15</duration> <files> <file> <datelastupdate>10/10/2006 00:00:00</datelastupdate> </file> <file> <datelastupdate>10/10/2006 00:00:00</datelastupdate> </file> <file> <datelastupdate>10/10/2006 00:00:00</datelastupdate> </file> </files> </partner> <partner name="tata"> <start>09/10/2006 23:24:03</start> <end>09/10/2006 23:52:19</end> <duration>00:28:15</duration> <files> <file> <datelastupdate>10/10/2006 00:00:00</datelastupdate> </file> </files> </partner>
Si vous pouvez m'orienter un peu c'est top et demandez moi si je me suis mal expliqué.
Merci d'avance pour votre aide.
Partager