Lire et récupérer des info 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 : Lire et récupérer des info XML

Re: Lire et récupérer des info XML

par moogli » 23 mars 2017, 10:48

salut,

premier test il y a une erreur au chargement du fichier xml
Warning: simplexml_load_file(): datafeed_325105.xml:15: parser error : EntityRef: expecting ';'

si tu n'as pas cette erreur iil faut impérativement que tu actives l'affichage des erreurs (display_error = on) et que tu on niveau d'erreur soit à E_ALL (error_reporting=E_ALL).

la en l'occurence ce sont les & qui doivent être échappé en XML => &

ensuite $flux n'a pas de propriété prod ($flux->prod) parce que prod c'est le tag racine.

pour voir ce qu'il y a dans $flux utilise un IDE en debug ou un bon vieux var_dump (ou xdebug_var_dump si tu as xdebug)

Si tu peux avoir plusieurs prod il faut mettre tous ça dans un tag "racine" (du coup c'est souvent root :) )

vu que le bbcode déconne un poil tu trouveras un dump de $flux et un exemple de xml avec boucle (qui fonctionne avec ton code ici
et en même temps ton code corrigé pour afficher la catégorie
https://gist.github.com/anonymous/9caaa ... 414a01a95f


@+

Lire et récupérer des info XML

par yoann38 » 22 mars 2017, 23:36

Salut à tous.
Voila je galère de nouveau dans un XML pour récupérer les donnés:

J'essai de récupérer les infos du xml de la sorte, mais rien ne marche.... je fait fausse route ?
$flux = simplexml_load_file('datafeed_325105.xml'); // Source du flux.xml
	set_time_limit(0);

           
    // On entre les entrees en bdd 
	function multiexplode ($delimiters,$string) {
   
    $ready = str_replace($delimiters, $delimiters[0], $string);
    $launch = explode($delimiters[0], $ready);
    return  $launch;
	}                
    foreach ($flux->prod as $item) {
		

    // Récupération des données en fonction du tagname du XML
	$number = addslashes($item->pId);
	$categorie = addslashes($item->cat);
	$prix = addslashes($item->price->buynow);	
	$titre = addslashes($item->text->name);	
	$description = addslashes($item->text->desc);	


	echo $number.'<br>';
	echo $categorie.'<br>';
	echo $prix.'<br>';
	echo $titre.'<br>';
Voici l'exemple du contenu d'un article du XML:
<prod id="3803121649" lang="fr"><brand/>
<cat><mCat>FILM</mCat></cat>
<price curr="EUR"><buynow>8.50</buynow><store>0.00</store></price>
<text>
	<name>ARCTIQUE</name>
	<desc>ici un texte</desc>
</text>
<uri>
	<awTrack>http://www.awin1.com/pclick.php?p=3803121649&a=325105&m=7430</awTrack>
	<awImage>http://images.productserve.com/noimage.gif</awImage> 
	<mImage>https://static.ticketmaster.fr/static/images/vignettes/a_271920.gif</mImage>
	<mLink>http://www.awin1.com/pclick.php?p=3803121649&a=325105&m=7430</mLink>
</uri>
	<vertical id="6" name="Tickets">
	<eventDate>30/03/2017 12:30</eventDate>
	<eventLocationCity>PARIS</eventLocationCity>
	<eventLocationCountry>FRANCE</eventLocationCountry>
	<eventLocationRegion>75019</eventLocationRegion>
	<primaryArtist>GEODE</primaryArtist>
	<venueAddress>26, avenue Corentin Cariou</venueAddress>
	<venueName>La Geode</venueName>
</vertical>
<pId>271920</pId></prod>