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

 MySQL Discussion :

MySQL et importation XML


Sujet :

MySQL

  1. #1
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 633
    Par défaut MySQL et importation XML
    Bonjour,

    Débutant dans ce domaine, j'ai beaucoup de mal à comprendre l'interprétation que fait MySQL dans phpmyadmin lors d'une importation de données au format XML, ci-dessous un exemple du fichier xml, qu'elle est son équivalent MySQL (tables/champs) ?

    Un exemple est le bien venu, il me permettra de mieux comprendre le comportement MySQL (phpmyadmin)

    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
    <?xml version="1.0" encoding="utf-8"?>
    <XMLBOOK xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="asd2017.xsd" version="0.0.0.00" status="v" bookname="nom du livre" type="book" revision="0">
       <BOOK bknumber="1" bkname="bk003" bkref="scd78sd87">
        <RUBRIQUE rnumber="12">
          <ARTICLE anumber="1">blablabla 1....</ARTICLE>
          <ARTICLE anumber="2">blablabla 2....</ARTICLE>
        </RUBRIQUE>
      </BOOK>
      <BOOK bknumber="2" bkname="bk008" bkref="scd78sd89">
        <RUBRIQUE rnumber="3">
          <ARTICLE anumber="1">blablabla 3....</ARTICLE>
          <ARTICLE anumber="2">blablabla 4....</ARTICLE>
        </RUBRIQUE>
        <RUBRIQUE rnumber="4">
          <ARTICLE anumber="4">blablabla 3....</ARTICLE>
          <ARTICLE anumber="5">blablabla 4....</ARTICLE>
          <ARTICLE anumber="8">blablabla 5....</ARTICLE>
        </RUBRIQUE>
      </BOOK>
    </XMLBOOK>
    En vous remerciant par avance,

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 778
    Par défaut
    Salut Dominos.

    Votre fichier XML ne respecte pas ce que MySql sait traiter.
    --> https://dev.mysql.com/doc/refman/5.7/en/load-xml.html

    @+

  3. #3
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 633
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut Dominos.

    Votre fichier XML ne respecte pas ce que MySql sait traiter.
    --> https://dev.mysql.com/doc/refman/5.7/en/load-xml.html

    @+
    ça j'ai bien compris, le problème de ce fichier c'est qu'il est "volumineux" et que bknumber="..." et rnumber="..." devraient se trouver dans <ARTICLE>

    Existe t-il une solution à ce pb ?
    j'ai commencé à le faire à la main mais c'est long (>250000 lignes)

    Merci pour la réponse,

  4. #4
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 778
    Par défaut
    Salut Dominos.

    N'oubliez pas que vous devez charger une table MySql.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ARTICLE anumber="1">blablabla 1....</ARTICLE>
    Comment allez-vous interpréter cette ligne ?
    Logiquement, vous devez avoir un nom de colonne et la valeur que vous allez placer dans cette colonne.
    Si le nom de la colonne est "anumber" et si vous y placez la valeur "1" que signifie alors "blablabla 1" ?

    Voici un extrait d'un fichier XML traité par MySql :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <fichier>
    	<cli>
    		<num_id>120</num_id>
    		<nom>DUPOND</nom>
    		<prenom>Pierre</prenom>
    		<relation>253</relation>
    		<adresse_c>route de la mer</adresse_c>
    		<code_postal>64200</code_postal>
    		<ville>Biarritz</ville>
    	</cli>
    	<cli>
    		<num_id>121</num_id>
    		<nom>DURANT</nom>
    		<prenom>Jean</prenom>
    		<relation>826</relation>
    		<adresse_c>rue de blabla</adresse_c>
    		<code_postal>75002</code_postal>
    		<ville>Paris</ville>
    	</cli>
    	<cli>
    		<num_id>122</num_id>
    		<nom>Smith</nom>
    		<prenom>John</prenom>
    		<relation>333</relation>
    		<ville>Londres</ville>
    	</cli>
    	<cli>
    		<num_id>123</num_id>
    		<nom>Grosjean</nom>
    		<prenom>Pierre</prenom>
    		<relation>17</relation>
    		<adresse_c>Bld des allongés</adresse_c>
    		<code_postal>13001</code_postal>
    		<ville>Marseille</ville>
    	</cli>
    </fichier>
    Ici, ce qui fait office de ligne se nomme "<cli>".
    Dans la ligne, vous avez six colonnes avec leur valeur respective.

    @+

  5. #5
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 633
    Par défaut
    Comment allez-vous interpréter cette ligne ?
    En utilisant Navicat premium, "ARTICLE" est lu comme un champ.
    Avec Notepad++ : option => sélection verticale (alt+souris), j'adapte peu à peu ces fichiers à navicat, qui permet de les importer dans MySQL.

    Merci pour les réponses.

  6. #6
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 778
    Par défaut
    Salut Domino.

    Je vous conseille de respecter la structure du fichier XML, de l'exemple que je vous ai communiqué.
    Elle est fort simple et permet de respecter la structure de votre table MySql.
    L'outil "LOAD XML LOCAL INFILE" de chez MySql, est destiné au chargement de la table MySql.

    Si votre structure XML admet plusieurs niveaux, vous devez alors appliquer l'outil à chaque fois.
    Dans l'exemple que je vous ai donné, la balise "<fichier>" correspond à une table.
    La balise "<cli>" correspond à une ligne et les autres balises, de même niveau, correspondent à des colonnes. On voit alors ici trois niveaux.
    L'outil "LOAD XML LOCAL INFILE" s'appliquera sur la balise "<cli>" qui correspond donc au deuxième niveau, soit à la ligne.

    Il est conseillé de mettre toutes les balises, même si elles sont vides. Pour le marqueur NULL, cela se traduit en mettant "\N".

    Dans un premier temps, vous devez vous concentrer sur la structure de votre fichier qui doit être conforme à ce que l'outil peut gérer.
    Je vous ai communiqué le lien qui explique ce que vous pouvez faire.

    Dans un seconde temps, si vous n'arrivez pas à faire le chargement, je vous donnerai un exemple concret à partir de votre fichier XML, que vous devrez me communiquer un extrait.

    @+

  7. #7
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 633
    Par défaut
    Merci, c'est très gentil de votre part.

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

Discussions similaires

  1. Import XML dans MySQL
    Par Korben-Dallas dans le forum Administration
    Réponses: 3
    Dernier message: 19/12/2011, 14h16
  2. [MySQL] Importer XML dans une base de données
    Par stardeus dans le forum XQUERY/SGBD
    Réponses: 17
    Dernier message: 12/07/2011, 11h14
  3. import XML dans MySql
    Par pingouinos_64 dans le forum MySQL
    Réponses: 1
    Dernier message: 14/01/2010, 15h56
  4. importation xml dans mysql
    Par papa dans le forum MySQL
    Réponses: 1
    Dernier message: 15/10/2009, 18h29
  5. Import XML (xmlns) vers MySQL
    Par basketime dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 02/04/2007, 16h27

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