Page 1 sur 1

[Résolu] Parser du xml avec simpleXML

Posté : 03 nov. 2010, 16:24
par wouldsmina
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...

Re: Parser du xml avec simpleXML

Posté : 03 nov. 2010, 16:26
par stealth35
hello, ta pas besion de faire urlencode, ni de lancer le SimplXMLElement

Re: Parser du xml avec simpleXML

Posté : 03 nov. 2010, 16:31
par wouldsmina
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

Re: Parser du xml avec simpleXML

Posté : 03 nov. 2010, 16:31
par stealth35
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

Re: Parser du xml avec simpleXML

Posté : 03 nov. 2010, 16:38
par wouldsmina
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...

Re: Parser du xml avec simpleXML

Posté : 03 nov. 2010, 16:50
par wouldsmina
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+