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

XML/XSL et SOAP Discussion :

Transformer un fichier XML en base de donées SQL


Sujet :

XML/XSL et SOAP

  1. #1
    Membre éclairé Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Par défaut Transformer un fichier XML en base de donées SQL
    Bonjour à tous j'ai un fichier xml qui se présente ainsi:
    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
    37
    38
    39
    40
    41
    42
    43
    44
     
    <ListeData>
    	<Data>
    		<track>
    		<Valeur1 />	
    		<Infos>
    			<info></info>
    		</Infos>
    		<details>
    			<mois>
    				<mois1>
    					<evenement1>
    					</evenement1>
     
    					<evenement2>
    					</evenement2>					
    				</mois1>
    				<mois2>
    					<evenement1>
    					</evenement1>
     
    					<evenement2>
    					</evenement2>					
    				</mois2>
     
    				<semaine1>
    					<evenement1>
    					</evenement1>
     
    					<evenement2>
    					</evenement2>									
    				</semaine1>
    					<evenement1>
    					</evenement1>
     
    					<evenement2>
    					</evenement2>					
    				<semaine2>
    				</semaine2>				
    			</mois>			
    		</details>
    		</track>
    	</Data>
    </ListeData>
    J'aimerais savoir comment je peux construire le fichier xsl pour pouvoir mettre les infos dans une base de données.
    Je débute avec le XML.
    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Cyreal,

    Tout d'abord, connais-tu la structure de tes tables et sais-tu dans quelles tables et colonnes chaque donnée de ton fichier xml doivent aller.
    Suivant la base de données et la version de cette dernière tu dois te renseigner si la base données accepte que des fichiers textes ou si tu peux charger directement des fichiers xml. Je pense Il faudra que tu transforme ton fichier xml en un fichier xml contenant les données de façon structurée selon les tables afin qu'il soit directement chargeable dans la base de donnée.

    Cédric

  3. #3
    Membre éclairé Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Par défaut
    Bonjour Cédric B.,
    mon fichier xlm contient des données et non je n'ai pas encore de base de données.
    Ma question est comment je doit m'y prendre pour créer la base de données correspondant a cette structure?
    Bien sur j'ai le fichier xml mais il est confidentiel alors j'ai résumé la structure dans ce post.

    J'ai du mal a comprendre a quoi sert le fichier xsl et comment l'appliquer dans mon cas.
    Merci.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Ok, alors si je comprends bien tu ne sais pas dans quelle base de données tu vas importer tes données?
    Tout d'abord, je ferais une analyse, comme un diagramme de classe dans UML par exemple afin de définir les structures des mes tables, comme exemple: as-tu besoin d'une table événements? Définir les interraction entre "Track", "Info", "événement" et "mois". Enfin à troi de voir!

    le fichier xsl serait utile dans le cas, où tu dois transformé ton fichier xml en un autre fichier xml afin qu'il soit chargeable dans la base de données!

    Cédric

  5. #5
    Membre éclairé Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Par défaut
    Merci je vais pousser mes recherches car là je crois que personne ne peux m'aider.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Disons qu'a priori, moi j'aurais pas fait intervenir XSLT pour ça...
    Des trucs comme Talend seraient plus adaptés pour ce genre de transformation d'information.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Des trucs comme Talend seraient plus adaptés pour ce genre de transformation d'information.
    Il faut quand même que la base de données soit déjà créée.

    A ma connaissance il n'existe rien permettant de générer un schéma de base de données à partir d'un XML/DTD (d'ailleurs ce serait dangereux).

  8. #8
    Membre éclairé Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Par défaut
    Merci @Loceka.
    C'est ce que j'ai compris avec mes recherches. Va falloir que je crée moi même la base de données à partir de la structure du fichier xml n'est-ce pas?

    J'aimerais aussi savoir comment je fais une fois la base de données créée pour charger de façon automatique les données du fichier xml ds la base de données. Car le fichier xml est distant et je doit récupérer les données pour des traitements afin de sortir des stats, rapports etc...

  9. #9
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Une fois que tu as créé ta base, le plus simple est d'utiliser un ETL (Talend, ...) comme l'a proposé thelvin.

    Sinon tu peux faire un fichier XSL qui te générera des requêtes d'INSERT SQL.

  10. #10
    Membre éclairé Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Par défaut
    Merci Loceka,
    J'ai pu faire la base de données et je bloque au nivo du fichier xsl.
    J'ai fait une ebauche masi que je ne peux tester car j'ai erreur dans mon fichier php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to undefined function xslt_create()
    Voici le contenu de mon fichier php.

    <?php
    // Crée le processeur XSLT
    $xh = xslt_create();
    xslt_set_base ($xh, 'file://' . getcwd () . '/');

    // Traite le document, puis affiche le résultat
    $result = xslt_process($xh, 'test.xml', 'test.xsl');
    if (!$result)
    echo ("Erreur XSLT ...");
    else
    echo ($result);

    // Détruit le processeur XSLT
    xslt_free($xh);
    ?>
    Je suis sous Windows 7, wamp avec php. 5.3.2.
    Merci de m'aider.

  11. #11
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    J'ai jamais utilisé XSL avec PHP donc là je peux pas t'aider.

    Par contre, si ton XSL est écrit en XSLT 1.0, Firefox l'ouvre normalement sans problème (les autres navigateurs ont un peu de mal malheureusement). Il suffit de spécifier la fichier XSL à appliquer dans ton XML et d'ouvrir le XML avec firefox :

    Déclaration du XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="URL_du_fichier_XSL"?>

  12. #12
    Membre éclairé Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Par défaut
    Merci ça marche bien avec firefox en effet.
    Seulement le fichier est lourd et donc il me faut le faire de façon automatique avec php.

    Mais je pense que la fonction première que j'utilise n'est pas adaptée. Celle-ci passe beaucoup mieux.

    $XmlData = "test.xml";
    $XslData = "test.xsl";
    $doc = new DOMDocument();
    $xsl = new XSLTProcessor();
    $doc->load($XslData);
    $xsl->importStyleSheet($doc);
    $doc->load($XmlData);
    echo $xsl->transformToXML($doc);
    Merci pour votre aide. Trop coll ce forum!!!

  13. #13
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205

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

Discussions similaires

  1. Transformer un fichier XML en base de donées SQL
    Par Sara8 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 19/04/2012, 19h04
  2. [SimpleXML] Comment faire pour transformer un fichier XML en PHP ?
    Par magic8392 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/09/2005, 17h22
  3. Transformer un fichier XML en SVG
    Par LEK dans le forum ASP
    Réponses: 2
    Dernier message: 05/07/2005, 22h52
  4. Réponses: 4
    Dernier message: 23/06/2005, 13h44

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