Précédent   Forum du club des développeurs et IT Pro > Autres langages > XML/XSL et SOAP > XQUERY/SGBD
XQUERY/SGBD Le langage XQUERY et tout ce qui a trait aux relations XML et bases de données : BDD XML native, intégration/extraction de XML, XML dans BDD relationnelle... Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/09/2011, 19h14   #1
Freedolphin
Membre habitué
 
Avatar de Freedolphin
 
Homme
Webmaster
Inscription : février 2006
Messages : 169
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 : 169
Points : 133
Points : 133
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 :
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 :
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.
Freedolphin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 14h24   #2
Loceka
Expert Confirmé
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 801
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 801
Points : 2 925
Points : 2 925
$location n'est pas défini.
Loceka est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 14h26   #3
Freedolphin
Membre habitué
 
Avatar de Freedolphin
 
Homme
Webmaster
Inscription : février 2006
Messages : 169
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 : 169
Points : 133
Points : 133
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 :
foreach($locations->tag_array as $location)
mais ça ne marche pas non plus.
__________________
Le mieux n'est pas forcément l'ennemi du bien.
Freedolphin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 15h39   #4
Loceka
Expert Confirmé
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 801
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 801
Points : 2 925
Points : 2 925
et ça ?
Code PHP :
$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.
Loceka est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h13.


 
 
 
 
Partenaires

Hébergement Web