Injecter automatiquement du xml dans Mysql avec php
Bonjour à tous, cela fait un moment que je me renseigne sur la bonne méthode mais je bloque toujours sur la meilleure façon de procéder, j'aimerai bien vos conseils avisés afin que je ne perde plus trop de temps.
Voila le contexte : Je dispose de fichiers xml avec une dtd sur un serveur Web.
Je dois automatiser au quotidien l'injection des données xml dans la base de donnée Mysql (v5.1) en php avec une tache cron (serveur mutualisé OVH).
Voici un bout du xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE actu SYSTEM "dtdactu.dtd">
<actu>
<article idArticle="lea10018816" rubrique="social" dateArticle="27/04/2012">
<titrearticle>La lisibilité du bulletin de paie bientôt améliorée*?</titrearticle>
<chapitre>
<titrechapitre>Une loi récente prévoit de simplifier les bulletins de paie à compter de l'année prochaine.</titrechapitre>
<refchapitre>
<lien href="http://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000025553296&fastPos=1&fastReqId=2082787286&categorieLien=id&oldAction=rechTexte#JORFARTI000025553669">Article 51, loi n° 2012-387 du 22 mars 2012, JO du 23</lien>
</refchapitre>
<contenu>
<paragraphe>
<texteparagraphe>La récente loi de simplification du droit contient un article visant à améliorer la lisibilité du bulletin de paie et à réduire le nombre de lignes quil contient, notamment celles relatives aux cotisations et contributions sociales. Deux étapes sont prévues à cet effet.</texteparagraphe>
<texteparagraphe>La première, consiste à lharmonisation, au plus tard le 1<exposant>er</exposant>*janvier 2013, des dispositions réglementaires définissant les éléments nécessaires au calcul de différentes cotisations sociales (assurances sociales, assurance chômage, retraite complémentaire).</texteparagraphe>
<texteparagraphe>Quant à la 2<exposant>de</exposant>*étape, fixée au 1<exposant>er</exposant>*janvier 2015 au plus tard, elle consiste en lobligation, pour les instances chargées de la gestion du régime dassurance chômage et des régimes de protection sociale complémentaire, de mettre en uvre des dispositions utiles pour que les conventions et accords négociés tiennent compte de lharmonisation des assiettes sociales.</texteparagraphe>
<texteparagraphe>
<annotation>
<titreannotation>Remarque*:</titreannotation>
<texteannotation>*une maquette du futur bulletin de paie simplifié a été présentée par le ministre du Travail le 19 mars dernier. Cette maquette se signale notamment par le regroupement de lensemble des cotisations sociales salariales et patronales.</texteannotation>
</annotation>
</texteparagraphe>
</paragraphe>
</contenu>
</chapitre>
</article>
</actu> |
J'ai essayé plusieurs méthode avec du PHP :
1) avec Jquery, j'ouvre le fichier, je récupère mes éléments dans une boucle, je génére des variable avec ces données et par une méthode ajax, je lance une commande Insert dans ma base Mysql.
Problème : Les caratères spéciaux s'affiche en ? apres un ut8_decode avant injection. La boucle jquery est trop rapide est sur les 29 articles du XML, seul 9 sont bien inséré. J'ai essayé de mettre un timeout ou ralentir la fonction parse, rien n'y fait.
J'ai également essayé toujours en jqurey, de d'abord créer un tableau à 2 dimensions puis avec une boucle for, je lance mes requete insert. Là aussi echec, la boucle for est trop rapide est je n'arrive pas à tout insérer.
2) Avec Simple_xml, dans un foreach, je parse mes données, j'ai d'ailleurs rencontré des problème car le fichier xml est structuré avec des objet imbriqué, j’envoie la requête insert et la c'est encore pire, beaucoup trop rapide seul 2 entrée dans Mysql.
Je galère vraiment et les 29 articles dans le xml contiennent beaucoup de données ce qui arrange pas les choses. Sans compter que je perds des informations en fonction de la méthode utilisé.
Pouvez vous me donner une piste pour mener à bien ce projet, en sachant que cela doit être un script en php ?
Merci de votre aide, j'ai deja perdu un temps phénomenal en retournant dans tous les sens le script avec les 2 méthodes que j'ai employé.
Je n'arrive également pas à lire le DTD qui contient la mise en forme des balises dans le document xml.