recuperation donnée XML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recuperation donnée XML

par katagoto » 09 juin 2008, 17:39

DOM est ton amis :) avec ça tu va pouvoir faire tout ce que tu veux hyper simplement et sans effort (si si :wink: )

recuperation donnée XML

par debutant57 » 09 juin 2008, 11:12

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