web-dev-qa-db-fra.com

Manière automatisée de convertir des fichiers XML en base de données SQL?

Nous avons un tas de fichiers XML, suivant un schéma qui est essentiellement une forme de base de données sérialisée:

<table1>
   <column1>value</column1>
   <column2>value</column2>
</table1>
<table1>
   <column1>another value</column1>
   <column2>another value</column2>
</table1>
...

Existe-t-il un moyen très simple de transformer cela en base de données SQL? Évidemment, je peux construire manuellement le schéma, identifier toutes les tables, tous les champs, etc., puis écrire un script pour l'importer. Je me demande simplement s'il existe des outils pouvant automatiser tout ou partie de ce processus?

15
Steve Bennett

Pour Mysql, veuillez consulter la syntaxe LOAD XMLDocs .

Cela devrait fonctionner sans aucune transformation XML supplémentaire pour le XML que vous avez fourni, spécifiez simplement le format et définissez vous-même le tableau à l'intérieur de la base de données avec les noms de colonnes correspondants:

LOAD XML LOCAL INFILE 'table1.xml'
    INTO TABLE table1
    ROWS IDENTIFIED BY '<table1>';

Il y a aussi une question connexe:

Pour Postgresql, je ne sais pas.

13
hakre

S'il existe un fichier XML avec 2 tables différentes, alors: 

LOAD XML LOCAL INFILE 'table1.xml' INTO TABLE table1 
LOAD XML LOCAL INFILE 'table1.xml' INTO TABLE table2

travail

2
Well-Wisher

Il y a un projet sur CodeProject qui facilite la conversion d'un fichier XML en script SQL. Il utilise XSLT. Vous pourriez probablement le modifier pour générer le DDL aussi.

Et voyez aussi cette question: Générer du SQL en utilisant XML et XSLT

1
Preet Sangha
0
SRIRAM