Page 1 sur 1

Chargement d'un XML externe

Posté : 30 mars 2008, 00:12
par Ingham
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

Posté : 30 mars 2008, 02:04
par Ingham
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; }

Posté : 30 mars 2008, 03:09
par Victor BRITO
Pourquoi ne pas utiliser SimpleXML ? ;)