opt - PHP cURL, extraire une réponse XML




php curl_init (4)

J'appelle la méthode PHP cURL sur un serveur et la réponse est de type XML. cURL enregistre la sortie (après avoir supprimé les balises) dans une variable de type scalaire. Y a-t-il un moyen de le stocker dans un objet / hash / array pour qu'il soit facile à analyser?


Exemple:

<songs>
<song dateplayed="2011-07-24 19:40:26">
    <title>I left my heart on Europa</title>
    <artist>Ship of Nomads</artist>
</song>
<song dateplayed="2011-07-24 19:27:42">
    <title>Oh Ganymede</title>
    <artist>Beefachanga</artist>
</song>
<song dateplayed="2011-07-24 19:23:50">
    <title>Kallichore</title>
    <artist>Jewitt K. Sheppard</artist>
</song>

puis:

<?php
$mysongs = simplexml_load_file('songs.xml');
echo $mysongs->song[0]->artist;
?>

Sortie sur votre navigateur: Ship of Nomads

crédits: http://blog.teamtreehouse.com/how-to-parse-xml-with-php5


Il suffit d'ajouter un en- header('Content-type: application/xml'); avant votre écho de la réponse XML et vous verrez une page XML.


simple fichier XML de chargement ..

$xml = @simplexml_load_string($retValuet);

$status = (string)$xml->Status; 
$operator_trans_id = (string)$xml->OPID;
$trns_id = (string)$xml->TID;

?>


$sXML = download_page('http://alanstorm.com/atom');
// Comment This    
// $oXML = new SimpleXMLElement($sXML);
// foreach($oXML->entry as $oEntry){
//  echo $oEntry->title . "\n";
// }
// Use json encode
$xml = simplexml_load_string($sXML);
$json = json_encode($xml);
$arr = json_decode($json,true);
print_r($arr);




curl