Précédent   Forum du club des développeurs et IT Pro > Autres langages > XML/XSL et SOAP > XQUERY/SGBD
XQUERY/SGBD Le langage XQUERY et tout ce qui a trait aux relations XML et bases de données : BDD XML native, intégration/extraction de XML, XML dans BDD relationnelle... Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/03/2007, 14h56   #1
stardeus
Membre du Club
 
Inscription : février 2005
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 172
Points : 40
Points : 40
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
stardeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2007, 17h02   #2
fraoustin
Membre émérite
 
Inscription : décembre 2003
Messages : 782
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 782
Points : 823
Points : 823
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
fraoustin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 13h01   #3
stardeus
Membre du Club
 
Inscription : février 2005
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 172
Points : 40
Points : 40
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
stardeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 14h29   #4
choko83
Membre habitué
 
Inscription : janvier 2007
Messages : 465
Détails du profil
Informations personnelles :
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : janvier 2007
Messages : 465
Points : 118
Points : 118
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 ’));
choko83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 18h05   #5
stardeus
Membre du Club
 
Inscription : février 2005
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 172
Points : 40
Points : 40
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
stardeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 10h27   #6
fraoustin
Membre émérite
 
Inscription : décembre 2003
Messages : 782
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 782
Points : 823
Points : 823
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
fraoustin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 10h47   #7
stardeus
Membre du Club
 
Inscription : février 2005
Messages : 172
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 172
Points : 40
Points : 40
bonjour

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

Stardeus
stardeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 10h09   #8
fraoustin
Membre émérite
 
Inscription : décembre 2003
Messages : 782
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 782
Points : 823
Points : 823
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');
fraoustin est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/04/2007, 09h10   #9
sibawe
Invité régulier
 
Inscription : décembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 9
Points : 5
Points : 5
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
sibawe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 10h43   #10
fraoustin
Membre émérite
 
Inscription : décembre 2003
Messages : 782
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 782
Points : 823
Points : 823
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
fraoustin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 09h06   #11
sibawe
Invité régulier
 
Inscription : décembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 9
Points : 5
Points : 5
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
sibawe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 11h30   #12
fraoustin
Membre émérite
 
Inscription : décembre 2003
Messages : 782
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 782
Points : 823
Points : 823
si tu as des soucis n'hésite pas
@+
fraoustin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 09h15   #13
femtosa
Membre actif
 
Avatar de femtosa
 
Inscription : juin 2002
Messages : 253
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 253
Points : 176
Points : 176
Envoyer un message via MSN à femtosa
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 !
femtosa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2007, 17h29   #14
sibawe
Invité régulier
 
Inscription : décembre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 9
Points : 5
Points : 5
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
sibawe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 10h10   #15
Migosh59
Membre à l'essai
 
Inscription : juin 2006
Messages : 36
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : juin 2006
Messages : 36
Points : 22
Points : 22
Envoyer un message via ICQ à Migosh59 Envoyer un message via MSN à Migosh59 Envoyer un message via Yahoo à Migosh59
Si j'ai bien compris le fichier .xsl est à écrire à la main ?
Migosh59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 11h07   #16
fraoustin
Membre émérite
 
Inscription : décembre 2003
Messages : 782
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 782
Points : 823
Points : 823
oui il faut l'écrire à la main
fraoustin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2007, 16h25   #17
Someone86
Invité de passage
 
Inscription : février 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 3
Points : 2
Points : 2
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!
Someone86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h14   #18
ache93
Membre à l'essai
 
Étudiant
Inscription : avril 2009
Messages : 103
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2009
Messages : 103
Points : 20
Points : 20
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 .
ache93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h39.


 
 
 
 
Partenaires

Hébergement Web