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

Discussion dans 'Administration d'un site Web' créé par blman, 25 Avril 2005.

  1. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    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 ?
     
  2. rottman
    rottman WRInaute passionné
    Inscrit:
    6 Janvier 2004
    Messages:
    1 804
    J'aime reçus:
    0
  3. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    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) ...
     
  4. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    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...
     
  5. willyz85
    willyz85 WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    99
    J'aime reçus:
    0
    Mais j'utilise ce code, c'est comme celui de clubic casiment
    -http://www.asp-php.net/ressources/bouts_de_code.php?codid=43
     
  6. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    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...
     
  7. shrom
    shrom WRInaute impliqué
    Inscrit:
    5 Juillet 2004
    Messages:
    781
    J'aime reçus:
    0
    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.
     
  8. willyz85
    willyz85 WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    99
    J'aime reçus:
    0
    Il n'y a juste la structure qui change non ? Pas les même balise.
     
  9. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    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
     
  10. shrom
    shrom WRInaute impliqué
    Inscrit:
    5 Juillet 2004
    Messages:
    781
    J'aime reçus:
    0
    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.
     
  11. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    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.
     
Chargement...
Similar Threads - [Résolu] [PHP XML] Forum Date
[PHP] Détecter l'OS, le navigateur et la langue [Résolu] Développement d'un site Web ou d'une appli mobile 4 Mars 2012
[RESOLU] [PHP] Lire une position précise à une ligne précise Développement d'un site Web ou d'une appli mobile 28 Juillet 2010
[PHP] Réordonner un tableau [RESOLU] Développement d'un site Web ou d'une appli mobile 12 Mars 2010
[Résolu][PHP] session_start() Développement d'un site Web ou d'une appli mobile 12 Janvier 2010
[résolu] [phpBB3] Autoriser les pièces jointes de différentes extensions Développement d'un site Web ou d'une appli mobile 15 Janvier 2009
[résolu][php/MySQL] Problème d'appel à une base Développement d'un site Web ou d'une appli mobile 29 Août 2007
[Résolu][PHP] Insertion toutes les n fois Développement d'un site Web ou d'une appli mobile 1 Octobre 2006
[Résolu] [PHP] Email de confirmation Administration d'un site Web 3 Mai 2005
[PHP] [résolu] Références/Pointeurs Administration d'un site Web 12 Avril 2005
[Resolu][PHP] Comment dédoubler (filtrer) propremt un site ? Administration d'un site Web 13 Septembre 2004
[Résolu][PHP] Problème sur une fonction avec un serveur UNIX Administration d'un site Web 2 Juin 2004
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[Résolu] Redirection 301 FR vers EN sur Prestashop uniquement sur outils Google ? Problèmes de référencement spécifiques à vos sites 11 Septembre 2017
[résolu] Passage à HTTPS, comment tester une page ? Développement d'un site Web ou d'une appli mobile 7 Septembre 2017
[Résolu] Redirection d'une famille d'URL URL Rewriting et .htaccess 9 Mars 2017
[Résolu] Diaporama et SEO Débuter en référencement 17 Janvier 2017
[résolu]Redirection monsite.fr/index.html sur monsite.fr et seo URL Rewriting et .htaccess 16 Janvier 2017
[resolu]Publicité facebook lié au compte instagram Facebook 12 Décembre 2016
[résolu] Récupérer des valeurs issues de javascript pour les mettre en base MySQL Développement d'un site Web ou d'une appli mobile 18 Juillet 2016
[résolu] Faire une redirection sauf pour mon adresse IP URL Rewriting et .htaccess 15 Juin 2016