+ Répondre à la discussion
Affichage des résultats 1 à 18 sur 18
  1. #1
    Membre du Club
    Inscrit en
    février 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 172
    Points : 43
    Points
    43

    Par défaut [MySQL] Importer XML dans une base de données

    Bonjour

    Je souhaiterais connaitre comment on pourrait transferer un flux d'information XML en BDD mysql. Je développe en java.
    J'ai effectué une recherche sur ce forum, mais j'aurais besoin d'eclaircissement sur XSLT. Apparement je devrais parser mon fichier XML et utiliser XSLT pour pouvoir faire l'ajout de mes données dans une base de données. Est ce bien cela ?

    Merci d'avance

    stardeus

  2. #2
    Membre émérite
    Inscrit en
    décembre 2003
    Messages
    784
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 784
    Points : 899
    Points
    899

    Par défaut

    oui mais pas tout à fait.
    En faite une base de donnée va pouvoir prendre du xml en entrée, mais un certain xml ( en faite il respecte und dtd).
    Pour transformer ton xml en xmlMySql tu peux utiliser le xslt

  3. #3
    Membre du Club
    Inscrit en
    février 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 172
    Points : 43
    Points
    43

    Par défaut

    Bonjour

    Je comprend pas très bien ce que fait le XSLT.
    D'apres ce que j'ai compris , XSLT recrée une nouvelle structure d'un fichier XML
    afin d'en manipuler les données
    Donc ma question est : ce que peut m'apporter de plus un document XSLT par rapport au XML.
    Un fichier XML est un document structurée de donnée qui peut etre manipulé par une DOM

    Mon objectif est de pouvoir importer mes fichier XML dans une base de données MySql

    Est ce que vous pouvez m'éclaircir mes idée ?
    merci d'avance

    stardeus

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : janvier 2007
    Messages : 465
    Points : 123
    Points
    123

    Par défaut bnjr

    J'ai pas compris bien qu'est ce que tu veux faire avec XSLT, mais il y a des SGBD relationnel comme oracle9i qui permettent d'ajoouter un attribut de type XMLType qui contient un document XML à une table relationnelle.
    Exemple:
    Code X :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SQL> create table PURCHASEORDER (PODOCUMENT sys.XMLTYPE);
    Table created.
    SQL> insert into PURCHASEORDER (PODOCUMENT) values (
    2 sys.XMLTYPE.createXML(
    3 ’
    4 <PurchaseOrder>
    5 <Refernce>2365</Reference>
    6 <Actions>
    7 <Action>
    8 <User>KING</User>
    9 <Date>12/11/02</DATE>
    10 </Action>
    11 </Actions>
    12 </PurchaseOrder>
    13 ’));

  5. #5
    Membre du Club
    Inscrit en
    février 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 172
    Points : 43
    Points
    43

    Par défaut

    Bonsoir

    Apparement on pourrait le réaliser avec XSLT, mais je voudrais si j'ai la possibilité de transformer tous mon fichier.
    D'apres fraoustin , je ne pourrais le realiser que partiellement.
    est ce bien cela?

    voila ce que j'aimerais faire a peu pres
    http://www.developpez.net/forums/d9756/autres-langages/xml-xsl-soap/xquery-sgbd/mysql-donnee-xml-vers-bdd/

    Stardeus

  6. #6
    Membre émérite
    Inscrit en
    décembre 2003
    Messages
    784
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 784
    Points : 899
    Points
    899

    Par défaut

    si j'ai bien compris, au vu de l'exemple de l'autre thread, tu as un fichier xml du type
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <articles>
      <article>
        <nom>tutu</nom>
        <id>0</id>
      </article>
      <article>
        <nom>titi</nom>
        <id>1</id>
      </article>
    </articles>
    et tu souhaites insérer les données du fichier xml dans la table article qui se compose de deux champs: id et nom.

    Car ce problème là n'est pas le même que celui que soulève choko83

  7. #7
    Membre du Club
    Inscrit en
    février 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 172
    Points : 43
    Points
    43

    Par défaut

    bonjour

    oui c'est exactement ce que je veux faire
    je souhaite inserer dans une base de données Mysql

    Stardeus

  8. #8
    Membre émérite
    Inscrit en
    décembre 2003
    Messages
    784
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 784
    Points : 899
    Points
    899

    Par défaut

    un exemple concret
    essai.xml
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <articles>
      <article>
        <nom>tutu</nom>
        <id>0</id>
      </article>
      <article>
        <nom>titi</nom>
        <id>1</id>
      </article>
    </articles>
    essai.xsl
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="text"/>
     
    <xsl:template match="/">  
     <xsl:apply-templates select="//article"/>
    </xsl:template>
     
    <xsl:template match="article">
    	<xsl:text>insert into article (id, lib) values(</xsl:text>
    	<xsl:value-of select="./id"/>
    	<xsl:text>,'</xsl:text>
    	<xsl:value-of select="./nom"/>
    	<xsl:text>');&#xA;</xsl:text>
    </xsl:template>
     
    </xsl:stylesheet>
    le fichier sql obtenu
    Code :
    1
    2
    3
     
    insert into article (id, lib) values('0','tutu');
    insert into article (id, lib) values('1','titi');

  9. #9
    Invité régulier
    Inscrit en
    décembre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 9
    Points : 6
    Points
    6

    Par défaut .. et comment crée-t-on un fichier texte .sql à partir de là

    Hello,

    Je suis super novice , reprenons l'exemple de fraoustin avec la table articles et les champs id et nom.

    le fichier .xsl permet d'afficher le fichier .xml dans mon navigateur, sous forme d'une série de "insert into articles ...", ça c'est clair. Si je veux importer ça dans ma base, ... , c'est un copier/coller pas super.

    J'aimerais savoir s'il est possible de rediriger ce résultat dans un fichier texte (plutot que dans mon navigateur) pour injecter ces instructions dans mysql.

    En gros: Comment ouvrir un fichier .xml, après transformation grâce à un fichier .xsl et rediriger le résultat dans un fichier .sql

    Merci

    Sibawe

  10. #10
    Membre émérite
    Inscrit en
    décembre 2003
    Messages
    784
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 784
    Points : 899
    Points
    899

    Par défaut

    tu peux tout faire en ligne de commande.
    Tu prend par exemple xalan comme moteur xslt et tu lance la commande suivante
    Code :
    1
    2
     
    xalan -in essai.xml -xsl essai.xsl > fred.sql
    et te voila avec un fichier fred.sql.
    mieux tu peux l'intégrer dans ta base en une commande
    Code :
    1
    2
     
    mysql < xalan -in essai.xml -xsl essai.xsl

  11. #11
    Invité régulier
    Inscrit en
    décembre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 9
    Points : 6
    Points
    6

    Par défaut installation de xalan

    Merci !
    Il reste à installer xalan, ... ça n'a pas l'air si évident que ça, mais je devrais m'en sortir
    A+
    Sibawe

  12. #12
    Membre émérite
    Inscrit en
    décembre 2003
    Messages
    784
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 784
    Points : 899
    Points
    899

    Par défaut

    si tu as des soucis n'hésite pas
    @+

  13. #13
    Membre actif Avatar de femtosa
    Inscrit en
    juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 253
    Points : 192
    Points
    192

    Par défaut

    N'oublie pas un petit détail ...

    "L'expérience est le seul livre que les imbéciles savent lire ... !"

    Qui à dit cela ? Moi je n'sais pas !
    Mais en tout cas, je l'applique au pas !

  14. #14
    Invité régulier
    Inscrit en
    décembre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 9
    Points : 6
    Points
    6

    Par défaut Résolution, installation de Xalan , Regex

    Merci pour toutes vos remarques

    1/ Je sais pas comment on fait "résolu" , il faut être créateur du thread non?

    2/ J'ai installé xalan sous java, un thread dédié pour détailler la procédure va suivre ..

    3/ Mon pble initial est presque résolu ..., mais la suite passe par les regex. Un nouveau thread a été créé. Si qqn a une idée:

    http://www.developpez.net/forums/sho...23#post1939523

  15. #15
    Membre à l'essai
    Inscrit en
    juin 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : juin 2006
    Messages : 36
    Points : 23
    Points
    23

    Par défaut

    Si j'ai bien compris le fichier .xsl est à écrire à la main ?

  16. #16
    Membre émérite
    Inscrit en
    décembre 2003
    Messages
    784
    Détails du profil
    Informations forums :
    Inscription : décembre 2003
    Messages : 784
    Points : 899
    Points
    899

    Par défaut

    oui il faut l'écrire à la main

  17. #17
    Invité de passage
    Inscrit en
    février 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 3
    Points : 2
    Points
    2

    Par défaut

    bonjour,

    je crois qu'il y a un detail concernant le fait de transmettre un fichier complexe xml , avec plusieurs niveaux (noeuds) et qui contiennent des attributs ,par exemple un fichier xml de plus de 8 dimensions sera impossible de transmettre dans une base de donnees, en fait je ne suis pas certain!

  18. #18
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    avril 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2009
    Messages : 102
    Points : 19
    Points
    19

    Par défaut

    Bonjour j'ai le même problème sauf que moi je travaille avec oracle et avec le framework Spring .

    je ne sais vraiment pas par ou commencer . j'ai testé le code du tutoriel de manipulation des fichier xml mais pour l'instant j'arrive just à afficher les resultats sur la sortie standard .

    ce que j'aimerais faire c'est injecter tout le fichier xml dans une de mes tables dans la base de données .

    Merci d'avance pour votre aide .

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •