Import données XML -> Base de données

Résolu
Bonjour à tous

J'aurai besoin d'aide en VB, j'ai réalisé un outil pour le moment qui permet de changer un fichier excel en fichier XML, les données XML serviront pour la base de données crée, j'aimerai savoir comment je peus m'y prendre pour importer des données XML dans la base de données (normalement pour la base j'utilise php/Mysl). Je ne connais pas grand chose encore en XML.

Merci^^

21 réponses

Résumé de la discussion

L'importation de données XML dans une base MySQL, à partir d'un fichier Excel converti en XML, nécessite une transformation des flux en requêtes SQL compatibles. Plusieurs solutions existent, dont l'utilisation d'une feuille XSLT pour convertir le flux XML en SQL INSERT, ou le développement d'un petit programme (PHP) réalisant la transformation côté serveur. La première approche consiste à joindre le fichier XSLT au XML et à ouvrir le document dans un navigateur pour générer un fichier SQL, ensuite sauvegardé et exécuté sur MySQL. La deuxième option implique de déployer un script serveur, par exemple en PHP, qui transforme le XML en SQL et prépare l'exécution sur le serveur MySQL, sans passer par le navigateur.

Bobot (l’IA à votre service)
  1. Bonjour,

    Pour importer un flux XML dans une base de données, le plus simple est de créer une feuille de transformation XSLT (tu trouveras un exemple ici : https://www.developpez.net/forums/d9756/autres-langages/xml-xsl-soap/xquery-sgbd/mysql-donnee-xml-vers-bdd/

    Une fois que tu as créé ta feuille de transformation, tu as deux solutions :

    - Soit tu associe la feuille XSLT à ton flux XML en rajoutant la ligne de code suivante vers le début de ton fichier XML :

    <?xml-stylesheet href="fichier.xsl" type="text/xsl"?>

    Ensuite, ouvre le fichier XML avec ton navigateur préféré (assez récent). Et là normalement il devrait effectuer la transformation et générér un beau résultat avec plein de requêtes SQL INSERT. Il ne te reste plus qu'à sauvegarder le fichier en .sql, puis à l'exécuter sur MySql avec une commande du type :

    mysql -u user -p < importation.sql

    - La deuxième solution est un peu plus compliquée, tu fais un petit programme, par exemple en PHP, pour transformer ta feuille (tu trouveras un exemple ici : http://ww38.laltruiste.com/document.php?url=http://www.laltruiste.com/coursphp/xsl_fonctionnement.html

    Ensuite, met ton programme sur ton serveur web et tape l'adresse du style http://monserveur/monprogramme.php dans ton navigateur web.

    Ici, c'est le serveur web qui va faire la transformation et le navigateur va afficher le résultat SQL. Là encore, il ne reste plus qu'à sauvegarder le fichier SQL et à l'exécuter sur ton serveur MySql.

    Voilà, j'espère que cela t'aidera. @+

    Druide.
  2. Dsl je n'ais pas de reponse, je post pour pouvoir etre informé par mail des reponses a ton sujets qui m'interesse beaucoup. et pis en postant, ça a le merite de remettre le sujet en debur de liste ^^. et donc d'esperer une reponse. merci a ceux qui sauraient repondre et qui auront la gentillesse de nous indiquer la methode.
  3. Contributeur
    Salut,
    Le plus simple semble être de tout charger dans un DOMTree (si les fichiers xml ne sont pas trop gros) et après de se déplacer dans la structure pour ajouter les informations à la bdd...
    1. je sais que ce n'est pas la réponse à ta question, mais j'aimerais un coup de main. Comment as-tu converti ton tableur excel en XML ?? et quelle version d'excel ca nécessite??
      1. tu doit utiliser la fonction Regex pour extraire les champs qui correspondent au format que tu veut sauvegarder dans la base de donnée
        1. moi je stocke mes donnees xml dans des fichiers txt (avec l'entet mentionne ci-haut) et apres j'y accede par une simple requete en regex et voila pas de sql ni de tableur et c'est aussi rapide.
          1. bonjour, je voudrais savoir qu'elle est la différence entre une base de donnée et un web service? et quel est l'inconvénient d'une base de donnée par apport au web service? qu'apporte de plus un web service ?
            merci de me répondre le plus vite possible
            1. salut dans mon projet j'ai besoin d'avoire le fonction utiliser en php qui permet d' inserer des donnees d'un flux xml dans la base de donnees mysql
              1. Moi c un peu différent,

                (je sais je napporte pas de solution, mais je mincruste pour savoir si vous avez une idée)

                je doit transfomer mon fichier XML en un programme C ou C++

                qlqun a une idée SVP ?

                Merci
                1. Bonjour
                  moi j'ai un autre pbm c'est que des fichiers txt que je devrais mettre dans une bdd MySQL
                  est ce que vous avez une idée de comment faire? ;)
                  1. Bonjour, ca va bien je besoin de cours de basse de donnée
                • 1
                • 2