Bonjour,
J'ai fais une recherche mais je n'ai pas trouvé mon bonheur.
J'ai un fichier XML de ce type
Je débute en traitement de fichier XML, le code que j'ai en PHP pourrait paraître débutantesque...
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 <SESSIONS> <SESSION date="2010-02-28"> <EVENTS> <EVENT eventid="1058" gender="M"> <SWIMSTYLE distance="200" stroke="FREE" /> <AGEGROUPS> <AGEGROUP agegroupid="1059" agemax="11" agemin="11" /> <AGEGROUP agegroupid="1088" agemax="12" agemin="12" /> </AGEGROUPS> </EVENT> <EVENT eventid="1060" gender="F"> <SWIMSTYLE distance="200" stroke="BREAST" /> <AGEGROUPS> <AGEGROUP agegroupid="1094" agemax="11" agemin="11" /> <AGEGROUP agegroupid="1095" agemax="12" agemin="12" /> <AGEGROUP agegroupid="1096" agemax="13" agemin="13" /> </AGEGROUPS> </EVENT> </EVENTS> <SESSION> </SESSION>
Mon souci est que lorsque je veux récupérer les attributs, cela marche pour EVENT, mais pour SWIMSTYLE et AGEGROUP je récupère les mêmes données dans chaque boucle.
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 foreach($xml->MEETS->MEET->SESSIONS->SESSION->EVENTS->EVENT as $event) { $eventid = $event['eventid']; $sexe = $event['gender']; $swim = $xml->MEETS->MEET->SESSIONS->SESSION->EVENTS->EVENT->SWIMSTYLE; $dist = $swim['distance']; $styl = $swim['stroke']; echo $dist.$styl; foreach ($xml->MEETS->MEET->SESSIONS->SESSION->EVENTS->EVENT->AGEGROUPS->AGEGROUP as $age) $ageid = $age['agegroupid']; $agemax = $age['agemax']; $agemin = $age['agemin']; echo $agemin.$agemax; } }
Dans l'exemple, j'ai 2 fois "200 FREE" au lieu d'avoir une ligne "200 FREE" et une ligne "200 BREAST", idem pour AGEGROUP.
Une idée ?
Partager