[Résolu] Parser du xml avec simpleXML

Petit nouveau ! | 8 Messages

03 nov. 2010, 16:24

Bonjour,
Je me remet au php que je n'ai plus utilisé depuis trop longtemps 8-| ! j'ai un petit problème pour parser du XML #-o , voici ma fonction:
function nominatim_revert ($lon,$lat) {

$url = urlencode('http://nominatim.openstreetmap.org/reverse?format=xml&lat='.$lat.'&lon='.$lon);
$xml  = simplexml_load_file($url);
$resultat = new SimpleXMLElement($xml);
return $resultat->reversegeocode->result;
}
cette fonction doit me retourner une adresse selon la longitude et la latitude que je lui donne, mais j'ai un message d'erreur qui me dit que mon fichier xml ne commence pas par <. j'ai pensé à un problème de codage de mon url, mais j'ai pas trouvé de solution. pour l'exemple, voici ce que retourne http://nominatim.openstreetmap.org/reve ... n=2.348273

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8" ?> <reversegeocode timestamp='Wed, 03 Nov 10 10:15:21 -0400' attribution='Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.' querystring='format=xml&lat=48.857067&lon=2.348273'> <result place_id="12502331" osm_type="node" osm_id="676860072">1, Rue Adolphe Adam, 4th Arrondissement, Paris, 75, 75001, Île-de-France, France</result> <addressparts> <house_number>1</house_number> <road>Rue Adolphe Adam</road> <city_district>4th Arrondissement</city_district> <city>Paris</city> <county>Paris</county> <postcode>75001</postcode> <state>Île-de-France</state> <country>France</country> <country_code>fr</country_code> </addressparts> </reversegeocode>
j'ai essayé d'autre méthode avant simpleXML (plus compliqué d'ailleurs) mais j'ai toujours une erreur.
Merci d'avance pour votre aide, et n'oubliez pas que je suis débutant alors il faut bien m'expliquer...
Modifié en dernier par wouldsmina le 03 nov. 2010, 16:54, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 16:26

hello, ta pas besion de faire urlencode, ni de lancer le SimplXMLElement

Petit nouveau ! | 8 Messages

03 nov. 2010, 16:31

hello, ta pas besion de faire urlencode, ni de lancer le SimplXMLElement
ok, meme sans urlencode j'ai le meme probleme...
donc je supprime la ligne simpleXMLElement tout simplement? Mais il ne va plus rien rester dans ma fonction!! :P

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 16:31

hello, ta pas besion de faire urlencode, ni de lancer le SimplXMLElement
ok, meme sans urlencode j'ai le meme probleme...
donc je supprime la ligne simpleXMLElement tout simplement? Mais il ne va plus rien rester dans ma fonction!! :P
SimpleXMLElement quasiement c'est pareil que simplexml_load_file

Petit nouveau ! | 8 Messages

03 nov. 2010, 16:38

merci pour les reponse aussi rapide!

donc maintenant ma fonction ressemble à ca:
function nominatim_revert ($lon,$lat) {

$url = 'http://nominatim.openstreetmap.org/reverse?format=xml&lat='.$lat.'&lon='.$lon;
$xml  = simplexml_load_file($url);
return $xml->reversegeocode->result;
}
cette fois ma page mouline sans rien afficher...

PS: Apres reflexion, c'est peut etre normal, puisque que je sollicite cette fonction pas moins de 5000 fois! je vais faire un essai pour une seul coordonnée...

Petit nouveau ! | 8 Messages

03 nov. 2010, 16:50

ca y est ca marche!
function nominatim_revert ($lon,$lat) {

$url = 'http://nominatim.openstreetmap.org/reverse?format=xml&lat='.$lat.'&lon='.$lon;
$xml  = simplexml_load_file($url);
return $xml->result;
}
merci stealth35
a+