[Résolu] [PHP - XML] Comment transformer XML en tableau

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

[Résolu] [PHP - XML] Comment transformer XML en tableau

Message le Lun Avr 25, 2005 11:05

Bonjour,
je recherche un script qui me permettrait de transformer n'importe quelles données contenu dans un fichier xml en tableau en PHP, je m'explique : je dois récupérer certaines données de 5 sites pour en tirer des stats. J'ai donc créer des fichiers de conf de chaque site en XML que je rapatri. Seulement, je suis bloqué, j'arrive pas à récupérer les données en tableau pour les traiter.

Voila ce que j'ai tester :
- -http://www.aidejavascript.com/article118.html?artsuite=0#sommaire_1
- Ya bien simpleXML mais je n'utilise pas cette version de PHP (-http://developpeur.journaldunet.com/tutoriel/php/040921-php-seguy-simplexml-1a.shtml)
- -http://www.commentcamarche.net/php/phpxml.php3

Mais je ne m'en sort pas, faut dire que je connait un peu XML mais je suis pas un expert, et dans ce cas, les données ont quand même une structure assez complexe. Est-ce que quelqu'un connait une classe ou des fonctions simples à mettre en place ?
Dernière édition par blman le Mer Avr 27, 2005 9:18, édité 1 fois.


rottman
WRInaute accro
WRInaute accro
 
Messages: 2097
Inscription: Mar Jan 06, 2004 20:11

Message le Lun Avr 25, 2005 12:09

Voilà un tutorial XML / PHP assez simple qui pourra t'aider.


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Lun Avr 25, 2005 12:55

Merci Rottman, mais ton tuto est efficace pour des fichiers XML simples. Les miens sont assez balaises : les sites dont je parlent sont en plusieurs langues et il y en a même un qui est dans 17 pays. Les fichiers XML que j'importent ne sont pas des fichiers RSS mais tous les fichiers de config de chaque site.

Le système que je recherche ressemblerait beaucoup à celui que j'ais cité -http://www.aidejavascript.com/article118.html?artsuite=0#sommaire_1 mais je n'arrive pas à le faire fonctionner (si il fonctionne) ...


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Lun Avr 25, 2005 13:10

Apparement, Il faudrait un script qui utilise xml-parse-into-struct.php, y'en a un ici : -http://fr2.php.net/manual/fr/function.xml-parse-into-struct.php , je vais regarder...


willyz85
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 134
Inscription: Sam Mai 01, 2004 12:07

Message le Mar Avr 26, 2005 16:38

Mais j'utilise ce code, c'est comme celui de clubic casiment
-http://www.asp-php.net/ressources/bouts_de_code.php?codid=43


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mar Avr 26, 2005 16:50

Merci willyz85, mais c'est pas du RSS que je veux parser. Je suis en train de bosser avec celui qui a créer ce script -http://www.aidejavascript.com/article118.html?artsuite=0#sommaire_1 : vraiment terrible mais pour l'instant, il ne marche pas sur toutes les versions de PHP. Je vous tiendrait au courant...

shrom
WRInaute passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

Message le Mar Avr 26, 2005 17:25

Lorsque le fichier est volumineux, c'est une très mauvaise idée que d'utiliser un tableau en intermédiare, il vaut mieux utilser SAX avec les callback.


willyz85
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 134
Inscription: Sam Mai 01, 2004 12:07

Message le Mar Avr 26, 2005 17:38

Il n'y a juste la structure qui change non ? Pas les même balise.


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mer Avr 27, 2005 9:27

Pour ceux que ça interresse :

Tout cette recherche sur la manière de parser un fichier XML m'a permis de trouver pas mal de solution :
- les expressions régulières comme le propose Rottman et willyz85 : pour des petits fichiers RSS, ça à l'air de fonctionner très bien.
- la librairie EXPAT de PHP
- simpleXML avec PHP5
- SAX avec les callback comme le propose shroom (je peux pas en parler, je connais pas, d'ailleurs, shroom, si tu pouvais nous en expliquer brièvement le principe, ce serait sympa)

J'ai choisi la solution de la librairie EXPAT qui correspond assez bien à mes besoins (J'aurais bien choisi simpleXML mais y'a pas PHP5 sur l'hébergement, snifff). Pour ce faire, je doit tirer un grand coup de chapeau à Marabbeh qui a fait ce code très efficace : http://www.aidejavascript.com/article118.html

shrom
WRInaute passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

Message le Mer Avr 27, 2005 10:50

blman a écrit:- SAX avec les callback comme le propose shroom (je peux pas en parler, je connais pas, d'ailleurs, shroom, si tu pouvais nous en expliquer brièvement le principe, ce serait sympa)


SAX est une des deux API officielles pour parser du XML avec DOM. La solution que tu as retenu utilise justement SAX ( librairie Expat ), par contre le passage par un tableau intermédiaire n'est pas utile, pourquoi ne pas effectuer directement les traitement dans les fonctions callback. Si ton fichier contient 20 enregistrements, pas de problème, s'il en contient 2000 ton hébergeur va te jeter en moins d'une journée.

Il y a des exemples de manipulation de données avec Expat un peu partout sur le web.


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Mer Avr 27, 2005 11:01

Dans le cas précis de ce que j'ai à faire, les tableaux vont me suffir amplement sans me prendre trop de ressources mais je vais quand même me renseigner sur ce que tu dis, car ça m'a l'air bien interressant tout ça... Merci en tout cas pour ces précisions.


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : API Google Checkout, Google Toolbar API

  • Recherche de citations d'un site en texte brut
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités