p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre actif
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    février 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : février 2006
    Messages : 212
    Points : 176
    Points
    176

    Par défaut Parser flux xml avec balises sur plusieurs niveaux

    Bonjour à tous,

    Tout d'abord, je préciser que je suis sous PHP4.

    J'utilise un script pour parser un fichier xml qui fonctionne bien tant que les balises ont toutes le même parent.
    Je voudrais récupérer les données de balises et sous-balises de ce flux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <profil>
      -<item id="xxx">
         <login>nom</login>
         <age>25ans</age>
         - <location>
            <city>ville</city>
            <country>France</country>
    Comme vous le voyez, la ville est dans "location", elle-même dans "item".

    Mon code d'affichage est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $parser = new XML_Parser();
    	$parser->xml_file = $fichier;
    	$parser->load();
    	$racine = $parser->documentElement();
    	$profils = $racine->getElementsByTagName('ITEM');
     
    	foreach($profils->tag_array as $profil)
    	{
    		$login = $profil->getDataItem(0);
    		$age = $profil->getDataItem(1);
     		$ville = $location->getDataItem(2);
            }
    J'arrive à récupérer le login et l'âge, mais pas la ville.
    Auriez-vous une piste ?
    Merci d'avance.
    Le mieux n'est pas forcément l'ennemi du bien.

  2. #2
    Expert Confirmé Sénior
    Avatar de Loceka
    Inscrit en
    mars 2004
    Messages
    2 056
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 2 056
    Points : 4 084
    Points
    4 084

    Par défaut

    $location n'est pas défini.

  3. #3
    Membre actif
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    février 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : février 2006
    Messages : 212
    Points : 176
    Points
    176

    Par défaut

    Citation Envoyé par Loceka Voir le message
    $location n'est pas défini.
    Oui, c'est une erreur, il fallait lire $profil.
    Ou bien garder $location en faisant une autre boucle du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($locations->tag_array as $location)
    mais ça ne marche pas non plus.
    Le mieux n'est pas forcément l'ennemi du bien.

  4. #4
    Expert Confirmé Sénior
    Avatar de Loceka
    Inscrit en
    mars 2004
    Messages
    2 056
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 2 056
    Points : 4 084
    Points
    4 084

    Par défaut

    et ça ?
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $location = $profil->getElementsByTagName('location');

    Quoi qu'il en soit, c'est plus un problème PHP que XML, tu aurais donc plus de réponses (et probablement meilleures) sur le forum PHP.

Discussions similaires

  1. Parser flux XML sur plusieurs niveaux
    Par Freedolphin dans le forum Syntaxe
    Réponses: 2
    Dernier message: 30/01/2012, 18h42
  2. Parser flux XML avec balise contenant ":" génère une erreur
    Par Pierrick81 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 22/08/2011, 19h19
  3. Réponses: 5
    Dernier message: 04/07/2011, 20h55
  4. Réponses: 3
    Dernier message: 20/08/2008, 10h24
  5. un menu géré avec javascript sur plusieurs niveaux (logique)
    Par polothentik dans le forum JavaScript
    Réponses: 2
    Dernier message: 02/07/2008, 14h23

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