Chargement d'un XML externe

Ingham
Invité n'ayant pas de compte PHPfrance

30 mars 2008, 00:12

Bonjour à tous :)

J'ai un petit soucis, je dois lire un XML externe pour obtenir des infos sur quelque chose...
Le soucis c'est qu'au lieu de me loader le XML lui meme, il me charge le XSL auquel il est rattaché, du coup évidement le parsing marche pas...

Face à ce problème, j'ai essayé plus simple:

Code : Tout sélectionner

$cache_name = "cache/test.xml"; $xml_url = "http://www.test.com/test.xml?a=".$a."&b=".$b; copy($xml_url, $cache_name);
Rien à faire, le fichier créé contient le code HTML final et non pas les données du XML.
Bizarre, surtout que quand j'ouvre ce XML avec IE ou Firefox, et que j'affiche la source, le XML est bien montré:
Image

Ca prouve bien que le serveur ne bloque pas l'envoi de son XML (c'est d'ailleurs pas leur interêt ;))

Une idée quelqu'un ? :(

Merci d'avance

Ingham
Invité n'ayant pas de compte PHPfrance

30 mars 2008, 02:04

C'est réglé, désolé du dérangement ;)
Pour ceux qui ca interesse, cela venait du site utilisé qui retournait un HTML au lieu d'un XML si l'User-Agent n'était pas IE ou Mozilla... Je suis passé par un CURL :)

Code : Tout sélectionner

static function GetXMLContent($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); return $res; }

Mammouth du PHP | 2937 Messages

30 mars 2008, 03:09

Pourquoi ne pas utiliser SimpleXML ? ;)