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

XQUERY/SGBD XML Discussion :

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


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Points : 73
    Points
    73
    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 éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    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 régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Points : 73
    Points
    73
    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 : 154
    Points
    154
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Points : 73
    Points
    73
    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/showthread.php?t=9756

    Stardeus

  6. #6
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Points : 73
    Points
    73
    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 éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    un exemple concret
    essai.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into article (id, lib) values('0','tutu');
    insert into article (id, lib) values('1','titi');

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 9
    Points : 9
    Points
    9
    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 éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql < xalan -in essai.xml -xsl essai.xsl

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 9
    Points : 9
    Points
    9
    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 éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    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 : 222
    Points
    222
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 9
    Points : 9
    Points
    9
    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
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Points : 34
    Points
    34
    Par défaut
    Si j'ai bien compris le fichier .xsl est à écrire à la main ?

  16. #16
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    oui il faut l'écrire à la main

  17. #17
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 5
    Points
    5
    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
    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 : 42
    Points
    42
    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.

Discussions similaires

  1. [MySQL] Importer des fichiers XML dans une base de données (Easyphp)
    Par Boujoute dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/12/2011, 00h13
  2. [XML] importer un fichier .log ou .xml dans une base de donnée MySQL
    Par sorayati dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/08/2009, 16h16
  3. Réponses: 1
    Dernier message: 09/05/2006, 12h00
  4. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41
  5. Champs de type XML dans une base de données
    Par Flocodoupoil dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 07/07/2004, 18h57

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