Bonjour à tous, je suis en train de me créer un parser xml pour un de mes sites, un problème subsiste, j'ai réussi à faire le parser en lui meme, mais dans chaque <$item> il y a des <retailer>, le but est de réussir à ajouter les retailer dans la fin de la fonction.
<?
function xParse($fichier,$item,$champs) {
// on lit le fichier
if($chaine = @implode("",@file($fichier))) {
// on explode sur <item>
$tmp = preg_split("/<\/?".$item.">/",$chaine);
// pour chaque <item>
for($i=1;$i<sizeof($tmp)-1;$i+=2)
// on lit les champs demandés <champ>
foreach($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
// on enleve les eventuels cdata
$tKikou = explode("<![CDATA[", $tmp2[1]);
if ( count($tKikou) > 1 ){
$sKikou = $tKikou[1];
}
else {
$sKikou = $tKikou[0];
}
$tKikou = explode("]]>", $sKikou);
$sKikou = $tKikou[0];
$tmp2[1] = $sKikou;
// on ajoute au tableau
$tmp3[$i-1][] = @$tmp2[1];
}
// et on retourne le tableau
return $tmp3;
}
}
function xDisp ($url, $item, $elements){
// on parse
$xml = xParse($url, $item, $elements);
// on affiche
echo "<ul>";
foreach($xml as $row) {
echo "<li>"
."<strong>".$row[0]." - ".$row[1]."</strong><br />"
."<i>".$row[2]."</i><br />"
.$row[8]
."</li><br>";
}
echo "</ul>";
}
?>
Merci de votre aide,
Damien Petitjean