Page 1 sur 1

recuperation donnée XML

Posté : 09 juin 2008, 11:12
par debutant57
Bonjour j'ai trouvé ce code pour recupere les donnée d'un fichier xml, il fonctionne parfaitement

Suelement j'ai un petit souci etant donnée que ma structure de fichier est différente ( elle ne peut pas etre modifié car je la recois comme cela )
<?php 

// Partons d'un exemple simple et trés classique 
// Imaginons 1 fichier XML avec 2 éléments, 'id' et 'prenom' 
// L'item principal est 'profil' 
?> 

<? xml version="1.0" encoding="ISO-8859-1" ?> 
- <XML_EXEMPLE> 
- <profil> 
  <id>200</id> 
  <prenom>Koogi</prenom> 
  </profil> 
</XML_EXEMPLE> 

<? 
// FONCTION qui va lire le fichier XML et le placer dans un tableau 
// Cette fonction sert de parseur 

function lit_xml($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; 
   } 
} 

// Lecture du FLUX XML sur le serveur 
$xml = lit_xml("http://www.site.com/flux.xml","profil",array("id","prenom")); 

// Une petite boucle suffit pour retrouver les élément du tableau 
// retourné dans la fonction lit_xml() 
foreach($xml as $row) { 

  echo $row[0]; 
  // affiche 200 
  echo $row[1]; 
  // affiche Koogi 

  } 

// Et voilà ;) 
?> 
voici la structure que je recois

<?xml version="1.0" encoding="utf-8"?>
<markers>
<marker lat="48.66194284607008" lng="5.20751953125" type="Champ" nom="departement" contact="[email protected]" />
</markers>

je ne suis pas specialiste de la recuperation de donnée, comment dois je modifier mon code pour qu'il recupère les donnée a partir de ma structure ?

merci d'avance

Posté : 09 juin 2008, 17:39
par katagoto
DOM est ton amis :) avec ça tu va pouvoir faire tout ce que tu veux hyper simplement et sans effort (si si :wink: )