j'ai le fichier xml suivant
Code : Tout sélectionner
<Driver>
<Name>Nom Prenom</Name>
<CarNumber>4</CarNumber>
<TeamName>Ferrari</TeamName>
<isPlayer>0</isPlayer>
<GridPos>13</GridPos>
<Position>13</Position>
<Lap num="1" p="9" et="244.4303" s1="45.9353" s2="24.1838" s3="27.1464" fuel="0.408">97.2655</Lap>
<Lap num="2" p="7" et="341.6958" s1="34.6579" s2="23.2544" s3="27.2179" fuel="0.400">85.1301</Lap>
<Lap num="3" p="7" et="426.8259" s1="32.1466" s2="23.2796" s3="27.7674" fuel="0.392">83.1936</Lap>
<BestLapTime>83.1936</BestLapTime>
<Laps>10</Laps>
<Pitstops>4</Pitstops>
<FinishStatus>Finish Normaly</FinishStatus>
</Driver>
Avec un script php j'arrive a récupérer sans soucis les valeurs contenues entre les balises simple <Name></Name> etc etc, mais je voudrais récupérer aussi les valeurs des variables s1, s2 et s3 qui se trouvent dans la balise <Lap ....>. Et là, je sèche.
Si quelqu'un a une idée...merci
je colle ici le script php qui me sert pour lire puis récupérer les données dans le xml (la fonction n'est pas de moi)
Code : Tout sélectionner
<?php
// Fonction parser
function parser($fichier,$item,$champs) {
// on lit le fichier
if($chaine = @implode("",@file($fichier))) {
// on explode sur <item>
// Dans l'exemple il s'agit de 'profil'
$tmp = preg_split("/<\/?".$item.">/",$chaine);
// pour chaque <item> donc tous les profils
for($i=1;$i<sizeof($tmp)-1;$i+=2)
// on lit les champs demandés <champ> donc il s'agit de 'id' et 'prenom'
foreach($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
// on ajoute l'élément au tableau
$tmp3[$i-1][] = @$tmp2[1];
}
// et on retourne le tableau dans la fonction
return $tmp3;
}
}
$xml = parser("test.xml","Driver",array("Name","TeamName","GridPos","Position","BestLapTime","FinishTime","Laps","FinishStatus"));
foreach ($xml as $key => $row) {
$nom[$key] = $row[0];
$teamnom[$key] = $row[1];
$gridpos[$key] = $row[2];
$position[$key] = $row[3];
$bestlap[$key] = $row[4];
$finishtime[$key] = $row[5];
$laps[$key] = $row[6];
$finishstatus[$key] = $row[7];
}
// Tri par ordre d'arrivée.
array_multisort($position, SORT_ASC, $xml);
// Affichage des données ligne par ligne.
foreach($xml as $row) {
echo $row[3]." ".$row[0]." ".$row[1]." ".$row[2]." ".$row[4]." ".$row[5]." ".$row[6]." ".$row[7]." "."<br/>";
}
?>