Aide pour mon Parser XML

cs_ddpetit Messages postés 13 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 26 mai 2006 - 25 mai 2006 à 23:09
cs_ddpetit Messages postés 13 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 26 mai 2006 - 26 mai 2006 à 18:21
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
      $tmp = preg_split("/<\/?".$item.">/",$chaine);
      // pour chaque
      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 "";
 foreach($xml as $row) {
    echo "<li>"
    ."".$row[0]." - ".$row[1]."
"
    ."".$row[2]."
"
    .$row[8]
 ."</li>
";
 }
 echo "";
}
?>

Merci de votre aide,
Damien Petitjean

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 mai 2006 à 07:15
Hello,

pq tu t'acharnes à réécrire des fonctions de parsing, quand il en existe déjà, en natif (ou presque) en php4 et php5 ... ?

Montre un exemple de ton xml (court), et pointe là où tu bloques, je n'ai pas bien pigé.
0
cs_ddpetit Messages postés 13 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 26 mai 2006
26 mai 2006 à 17:39
Voici un bout du rss : http://www.aprixmini.com/rss.php je bloque pour ajouter les retailer pour chaque item ()
0
cs_ddpetit Messages postés 13 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 26 mai 2006
26 mai 2006 à 18:21
bon le flux rss n'est pas en ligne actuellement, le flux se représente ainsi

   
         <retailer>

         </retailer>
         <retailer>
         
         </retailer>
   

   
         <retailer>

         </retailer>
         <retailer>
         
         </retailer>
   
0
Rejoignez-nous