Bonjour à tous,
alors voilà je dois traité via un site web en php des fichiers xml.
J'utilise pour cela SimpleXML, mais me voilà bloqué pour une broutille je suppose.
Voici la trame de mon xml qui est généré par un autre prog:
Donc voila en gros la structure du xml, sachant que dans Stream il y a plusieurs noeuds enfant tout comme dans Driver.
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<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE rF [ <!ENTITY rFEnt "rFactor Entity"> ]> <rFactorXML version="1.0"> <RaceResults> <Setting>Multiplayer</Setting> <ServerName>Endurance-Rfactor 1000km</ServerName> <PlayerFile>Serveur1</PlayerFile> <DateTime>1273881273</DateTime> <TimeString>2010/05/15 01:54:33</TimeString> [...] <Warmup> <DateTime>1273895541</DateTime> <TimeString>2010/05/15 05:52:21</TimeString> <Laps>2147483647</Laps> <Minutes>5</Minutes> <Stream>[...]</Stream> <Driver>[...]</Driver> <Driver>[...]</Driver> </Warmup> </RaceResults> </rFactorXML>
En gros je souhaiterai tester si le noeud warmup existe car en fait ce noeud peut être nommé différemment:
* <warmup></warmup>
* <practice1></practice1>
...
alors j'avais pensé à quelque chose de ce genre, mais j'espère trouver mieux avec votre aide
merci d'avance pour votre aide !
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 $rFactorXML = simplexml_load_file($chaine_file); foreach ($rFactorXML->RaceResults as $RaceResults) { $circuit=$RaceResults->TrackCourse; $length=$RaceResults->TrackLength; if ($RaceResults->Practice1){ $Race=$RaceResults->Practice1; } elseif ($RaceResults->Practice2){ $Race=$RaceResults->Practice2; } elseif ($RaceResults->Qualify){ $Race=$RaceResults->Qualify; } elseif ($RaceResults->Warmup){ $Race=$RaceResults->Warmup; } elseif ($RaceResults->Race){ $Race=$RaceResults->Race; } foreach ($Race as $Session){ foreach ($Session->Driver as $Driver) {...} }







Répondre avec citation
Partager