IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] Prob XML avec Geonames


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Par défaut [SimpleXML] Prob XML avec Geonames
    Bonjour,

    Je suis en train de travailler avec geonames pour récupérer des noms de ville avec leurs noms alternatifs dans d'autres langues.

    Voici le XML que ça me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    <geonames style="FULL"><totalResultsCount>273</totalResultsCount>
    <geoname>
     <toponymName>Genève</toponymName>
     <name>Genève</name>
     <lat>46.20222</lat>
     <lng>6.14569</lng>
     <geonameId>2660646</geonameId>
     <countryCode>CH</countryCode>
     <countryName>Suisse</countryName>
     <fcl>P</fcl>
     <fcode>PPLA</fcode>
     <fclName>city, village,...</fclName>
     <fcodeName>seat of a first-order administrative division</fcodeName>
     <population>183981</population>
     <alternateNames>Cenevre,GVA,Genava,Genebe,Genebra,Geneue,Geneva,Geneve,Genevi,Genevo,Genevra,Genewa,Genf,Genève,Ginebra,Ginevra,Jenewa,Xenebra - Geneve,Xenebra - Genève,Zeneva,Zhehneva,Zheneva,Znev,janiva,jeneba,jnyf,jnywa,junevu,ri nei wa,z'nbh,zheneva,Ĝenevo,Ženeva,Ženēva,Γενέβη,Γενευη,Γενεύη,Женева,Жэнева,Ժնև,ז'נבה,جنيف,جنیوا,جەنۋە,जनीवा,ჟენევა,ジュネーヴ,日内瓦,제네바 </alternateNames>
     <elevation/>
     <continentCode>EU</continentCode>
     <adminCode1>GE</adminCode1>
     <adminName1>Genève</adminName1>
     <adminCode2>2500</adminCode2>
     <adminName2>Genève</adminName2>
     <adminCode3>6621</adminCode3>
     <adminName3>Genève</adminName3>
     <alternateName lang="af">Genève</alternateName>
     <alternateName lang="ar">جنيف</alternateName>
     <alternateName lang="be">Жэнева</alternateName>
     <alternateName lang="bg">Женева</alternateName>
     <alternateName lang="bs">Ženeva</alternateName>
     <alternateName lang="ca">Ginebra</alternateName>
     <alternateName lang="cs">Ženeva</alternateName>
     <alternateName lang="da">Geneve</alternateName>
     <alternateName lang="de">Genf</alternateName>
     <alternateName lang="el">Γενευη</alternateName>
     <alternateName lang="en">Geneva</alternateName>
     <alternateName lang="eo">Ĝenevo</alternateName>
     <alternateName lang="es">Ginebra</alternateName>
     <alternateName lang="et">Genf</alternateName>
     <alternateName lang="eu">Ginebra</alternateName>
     <alternateName lang="fi">Geneve</alternateName>
     <alternateName lang="fr">Genève</alternateName>
     <alternateName lang="frp">Geneva</alternateName>
     <alternateName lang="gl">Xenebra - Genève</alternateName>
     <alternateName lang="he"'נבה</alternateName>
     <alternateName lang="hi">जनीवा</alternateName>
     <alternateName lang="hr">Ženeva</alternateName>
     <alternateName lang="hu">Genf</alternateName>
     <alternateName lang="hy">Ժնև</alternateName>
     <alternateName lang="iata">GVA</alternateName>
     <alternateName lang="id">Jenewa</alternateName>
     <alternateName lang="io">Genève</alternateName>
     <alternateName lang="is">Genf</alternateName>
     <alternateName lang="it">Ginevra</alternateName>
     <alternateName lang="ja">ジュネーヴ</alternateName>
     <alternateName lang="ka">ჟენევა</alternateName>
     <alternateName lang="ko">제네바</alternateName>
     <alternateName lang="la">Genava</alternateName>
     <alternateName lang="link">http://en.wikipedia.org/wiki/Geneva</alternateName>
     <alternateName lang="lt">Ženeva</alternateName>
     <alternateName lang="lv">Ženēva</alternateName>
     <alternateName lang="nds">Genf</alternateName>
     <alternateName lang="nl">Genève</alternateName>
     <alternateName lang="nn">Genève</alternateName>
     <alternateName lang="no">Genève</alternateName>
     <alternateName lang="pl">Genewa</alternateName>
     <alternateName lang="pt">Genebra</alternateName>
     <alternateName lang="qu">Genève</alternateName>
     <alternateName lang="rm">Genevra</alternateName>
     <alternateName lang="ro">Geneva</alternateName>
     <alternateName lang="ru">Женева</alternateName>
     <alternateName lang="scn">Ginevra</alternateName>
     <alternateName lang="sh">Ženeva</alternateName>
     <alternateName lang="sk">Ženeva</alternateName>
     <alternateName lang="sr">Женева</alternateName>
     <alternateName lang="sv">Genève</alternateName>
     <alternateName lang="tr">Cenevre</alternateName>
     <alternateName lang="ug">جەنۋە</alternateName>
     <alternateName lang="ur">جنیوا</alternateName>
     <alternateName lang="vi">Geneva</alternateName>
     <alternateName lang="zh">日内瓦</alternateName>
     <timezone dstOffset="2.0" gmtOffset="1.0">Europe/Zurich</timezone><score>98.55810546875</score>
    </geoname>
    </geonames>
    Il y a même plusieurs éléments "geoname" qui arrivent (la au dessus j'en ai mis qu'un), et je peux presque tous les récupérer avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $xmlurl="http://api.geonames.org/search?q=".$laville."&maxRows=2&lang=fr&username=geckosystem&style=full";
    $xml=simplexml_load_file($xmlurl);
     
    foreach ($xml->geoname as $geoname)
    {
    $laville_nom=$geoname->name;
    $laville_lat=$geoname->lat;
    $laville_lon=$geoname->lng;
    $laville_pop=$geoname->population;
    $laville_alt=$geoname->elevation;
    $laville_fr=$geoname->alternateName->lang['fr'];
    $laville_en=$geoname->alternateName->lang['en'];
    $laville_de=$geoname->alternateName->lang['de'];
    $laville_it=$geoname->alternateName->lang['it'];
    $laville_es=$geoname->alternateName->lang['es'];
    print($laville_nom." (FR:".$laville_fr."-EN:".$laville_en."-DE:".$laville_de."-IT:".$laville_it."-ES:".$laville_es."<br>");
    }
    Eh bien tout ce qui doit venir des alternateName reste vide !
    Je veux précisément récupérer les valeurs de 5 langues : fr, en, de, es & it.

    ça fait un moment que je tourne dans ce forum, et je trouve pas la réponse !
    Merci d'avance à qui m'aideras !

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 368
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 368
    Billets dans le blog
    17
    Par défaut
    Eh bien tout ce qui doit venir des alternateName reste vide !
    Je veux précisément récupérer les valeurs de 5 langues : fr, en, de, es & it.
    Normal, ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $laville_fr=$geoname->alternateName->lang['fr'];
    ... permet d'accéder à la valeur d'un attribut de : <alternateName><lang fr="???">

    Faudrait faire dans ta boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $langs = array('fr', 'en', 'de', 'es', 'it') ; // Recherches
    foreach ( $geoname->alternateName as $alternateName ) {
        if ( in_array($alternateName['lang'], $langs) ) {
            ${'laville_' . $alternateName['lang']} = (string)$alternateName ;
        }
    }
    ... ou utiliser un XPath pour sélectionner les alternateName qui t'intéressent.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Par défaut Merci !
    Merci pour ta réponse ! je tente ...

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Par défaut re Merci !
    ça fonctionne ! Merci beaucoup et bonne soirée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SimpleXML] Parser un XML avec SimpleXML_Load_File
    Par mathieu3392 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 12/10/2007, 12h11
  2. [SimpleXML] recuperer données xml avec simplexml
    Par astrolane dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 29/08/2007, 15h39
  3. [SimpleXML] Analyser un fichier XML avec PHP
    Par Someone86 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/08/2007, 10h43
  4. [SimpleXML] Parser un flux xml avec SimpleXMLElement
    Par DeezerD dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/11/2006, 19h07
  5. [SimpleXML] bdd xml avec php
    Par ecdxml dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/06/2006, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo