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

XQUERY/SGBD XML Discussion :

Parser flux xml avec balises sur plusieurs niveaux


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre actif
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    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 : 291
    Points : 225
    Points
    225
    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é
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    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
    291
    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 : 291
    Points : 225
    Points
    225
    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é
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    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 Langage
    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 Général 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