Importer régulièrement des données XML dans une base MYSQL

Petit nouveau ! | 1 Messages

28 déc. 2021, 18:52

Bonjour, je suis nouveau sur ce forum et peu familiarisé avec PHP, même si je l'ai déjà utilisé dans le passé. Par contre, je suis très débutant avec XML, même si j'en comprends la structure. Voici mon problème :

je m'occupe de refaire un site (en SPIP) pour mon association en charge de la gestion d'une salle de cinéma de ma commune. Nous programmons chaque mois une trentaine de films dont nous récupérons la liste et les détails via un fichier XML via Allociné. (Actuellement, plusieurs membres récupèrent les infos par copier-coller chaque mois, ce qui est assez fastidieux).
J'aimerais pouvoir importer directement via un script php les infos de ce fichier XML dans ma base de données. Après de nombreuses heures de lectures diverses, je suis encore plus perdu ... Quelqu'un pourrait-il m'aider, au moins enme donnant une piste concrète et pratique pour que je puisse avancer ? Ce serait super sympa !

Je vous passe ci-dessous le code du fichier XML, en espérant que ma demande soit réaliste. Pour info, j'utilise php 5.6.23 avec MySQL 5.0.11.

Code : Tout sélectionner

<?xml version='1.0' encoding='UTF-8'?> <ProgrammationSalles> <semaine date="17/11/2021"> <salles> <salle id="P8798" nom="La Bobine" ville="Monein" adresse="22, rue du Commerce"> <films> <film id="286901" titre="My Son" titreoriginal="" realisateurs="Christian Carion" acteurs="James McAvoy, Claire Foy, Jamie Michie, Owen Whitelaw, Paul Rattray" anneeproduction="2021" datesortie="03/11/2021" duree="01h34" genreprincipal="Drame, Policier, Thriller" nationalite="France" synopsis="Edmond Murray, divorcé, s’est éloigné de son ex-femme et de son fils de 7 ans pour poursuivre une carrière internationale. Lorsque le garçon disparaît, Murray revient précipitamment dans les Highlands. Rapidement, il devient clair que l’enfant a été kidnappé." affichette="http://xxxx/pictures/21/09/23/17/12/1648758.jpg" video="19593728" visanumber=""> <horaire_web vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> ven: 21:00|lun: 14:30 </horaire_web> <horaire vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> 19-11-2021 21:00:00;22-11-2021 14:30:00 </horaire> </film> <film id="285749" titre="Barbaque" titreoriginal="" realisateurs="Fabrice Eboué" acteurs="Fabrice Eboué, Marina Foïs, Virginie Hocq, Jean-François Cayrey, Stephane Soo Mongo" anneeproduction="2020" datesortie="27/10/2021" duree="01h32" genreprincipal="Comédie" nationalite="France" synopsis="Vincent et Sophie sont bouchers. Leur commerce, tout comme leur couple, est en crise. Mais leur vie va basculer le jour où Vincent tue accidentellement un vegan militant qui a saccagé leur boutique… Pour se débarrasser du corps, il en fait un jambon que sa femme va vendre par mégarde." affichette="http://xxxx/pictures/21/09/09/15/43/3782383.jpg" video="19590117" visanumber=""> <horaire_web vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> sam: 14:30 </horaire_web> <horaire vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> 20-11-2021 14:30:00 </horaire> </film> <film id="269684" titre="The French Dispatch" titreoriginal="" realisateurs="Wes Anderson" acteurs="Tilda Swinton, Bill Murray, Frances McDormand, Benicio Del Toro, Jeffrey Wright" anneeproduction="2021" datesortie="27/10/2021" duree="01h48" genreprincipal="Comédie, Drame, Romance" nationalite="U.S.A." synopsis="The French Dispatch met en scène un recueil d’histoires tirées du dernier numéro d’un magazine américain publié dans une ville française fictive du 20e siècle." affichette="http://xxxx/pictures/21/07/05/10/50/4043397.jpg" video="19587473" visanumber=""> <horaire_web vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> sam: 21:00 </horaire_web> <horaire vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> 20-11-2021 21:00:00 </horaire> </film> <film id="269512" titre="Pingouin &amp; Goéland et leurs 500 petits" titreoriginal="" realisateurs="Michel Leclerc" acteurs="" anneeproduction="2020" datesortie="03/11/2021" duree="01h49" genreprincipal="Documentaire" nationalite="France" synopsis="C’est l’histoire d’intellectuels, anarchistes, pacifistes, syndicalistes et féministes. C’est l’histoire d’Yvonne et Roger Hagnauer que tout le monde appelait Goéland et Pingouin. Et puis c’est un peu mon histoire, puisque ma mère, sauvée par ce couple, a passé dans cette maison toute son enfance." affichette="http:/xxxx/pictures/21/10/01/17/51/1824276.jpg" video="19588051" visanumber="150026"> <horaire_web vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> dim: 14:30 </horaire_web> <horaire vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> 21-11-2021 14:30:00 </horaire> </film> <film id="293966" titre="Si on chantait" titreoriginal="" realisateurs="Fabrice Maruca" acteurs="Clovis Cornillac, Alice Pol, Artus, Jeremy Lopez, Chantal Neuwirth" anneeproduction="2021" datesortie="03/11/2021" duree="01h35" genreprincipal="Comédie" nationalite="France" synopsis="Après la fermeture de leur usine, Franck, passionné de variété française décide d’entraîner ses anciens collègues, Sophie, José et Jean-Claude dans un projet un peu fou : monter une entreprise de livraisons de chansons à domicile, SI ON CHANTAIT !" affichette="http://xxxx/pictures/21/09/24/11/11/1430693.jpg" video="19594013" visanumber="148669"> <horaire_web vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> dim: 17:00 </horaire_web> <horaire vo="0" version="Français" projection="2D" soustitre="" salle="LA BOBINE"> 21-11-2021 17:00:00 </horaire> </film> </films> </salle> </salles> </semaine> </ProgrammationSalles>
Merci d'avance ! Marc

Mammouth du PHP | 2703 Messages

28 déc. 2021, 18:56


Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

28 déc. 2021, 19:52

Effectivement le plus simple comme te l'a proposé or1, c'est d'utiliser simpleXML pour lire le XML facilement et faire ce que tu veux avec (l'importer dans une BDD)


Et sinon, je ne sais pas comment est généré le XML que tu utilises mais si c'est à base de copier-coller, il y a peut être plus simple en utilisant directement l'API Allociné, je ne suis pas sûr qu'elle soit publique officiellement, mais en tout cas elle fonctionne depuis plus de 10 ans, et il y a un exemple fonctionnel sur Github ici :
https://github.com/gromez/allocine-api
Quand tout le reste a échoué, lisez le mode d'emploi...