IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Injecter automatiquement du xml dans Mysql avec php


Sujet :

XML/XSL et SOAP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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&amp;fastPos=1&amp;fastReqId=2082787286&amp;categorieLien=id&amp;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 qu’il contient, notamment celles relatives aux cotisations et contributions sociales. Deux étapes sont prévues à cet effet.</texteparagraphe>
    					<texteparagraphe>La première, consiste à l’harmonisation, 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 l’obligation, pour les instances chargées de la gestion du régime d’assurance 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 l’harmonisation 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 l’ensemble 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.

  2. #2
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    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.
    C'est un phénomène unique ?

    Je doute un peu que ton soucis soit la rapidité d'exécution d'une boucle.
    J'imagine que la cause de l'erreur est ailleurs.
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Le phénomène se produit sur tous les fichiers xml suivant ce traitement.
    J'ai pensé à un problème dans la boucle car à l'affichage des données avec la méthode Jquery, j'ai bien toutes mes entrées sur la page, seul la requête n'injecte pas tout.

    J'ai également des soucis avec les balises dans le xml, je vais essayer de regarder le xsl pour me faire un template de transformation et injecter ensuite dans du mysql.

    qu'en pensez vous ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/12/2011, 16h57
  2. [MySQL] les images dans mysql avec Php
    Par kitcarson23 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/01/2011, 01h02
  3. [MySQL] Insérer un vecteur dans MySQL avec PHP
    Par fAdoua123 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 21/02/2008, 17h50
  4. Réponses: 1
    Dernier message: 28/04/2006, 16h17
  5. Importation d'un fichier xml vers une BD mysql avec php
    Par naima2005 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 28/04/2006, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo