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:
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>
Donc voila en gros la structure du xml, sachant que dans Stream il y a plusieurs noeuds enfant tout comme dans Driver.

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
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) {...}
                        }
merci d'avance pour votre aide !