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] Donnée XML >vers> BDD


Sujet :

XQUERY/SGBD XML

  1. #1
    Nouveau Candidat au Club
    [Mysql] Donnée XML >vers> BDD
    Bonjour,

    Je voudrai bien insérer mes données du fichier XML vers ma base de donnée.

    bouks.xml

    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
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml:stylesheet type="text/xsl" href="books.xsl"?>
    <books>
    	<book>
        	<title>Dilbert</title>
    	    <author>Scott Adams</author>
    		<price>13</price>
    	</book>
    	<book>
        	<title>Le seigneur des anneaux</title>
    	    <author>J.R.R Tolkien</author>
    		<price>12.50</price>
    	</book>
    	<book>
        	<title>Harry Potter à l'ecole des sorciers</title>
    	    <author>J.K. Rowling</author>
    		<price>8.54</price>
    	</book>
    	<book>
        	<title>les misérables</title>
    	    <author>Victor Higo</author>
    		<price>7.50</price>
    	</book>
    </books>


    books.xsl

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:template match="books/book">
    			<xsl:text> INSERT INTO books (title, author, price) VALUES ( </xsl:text>
    			<xsl:value-of select="title"/>
    			<xsl:text>, </xsl:text>
    			<xsl:value-of select="author"/>
    			<xsl:text>, </xsl:text>
    			<xsl:value-of select="price"/>
    			<xsl:text> </xsl:text>
    			<xsl:text>);</xsl:text><br/> 		
    	</xsl:template>
    </xsl:stylesheet>


    execution du books.xml est la suivante :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO books (title, author, price) VALUES ( Dilbert, Scott Adams, 13 );
    INSERT INTO books (title, author, price) VALUES ( Le seigneur des anneaux, J.R.R Tolkien, 12.50 );
    INSERT INTO books (title, author, price) VALUES ( Harry Potter à l'ecole des sorciers, J.K. Rowling, 8.54 );
    INSERT INTO books (title, author, price) VALUES ( les misérables, Victor Higo, 7.50 );

    Mais je voudrais bien inserer mes données dans ma table.
    Comment puis-je faire ??

  2. #2
    Expert éminent sénior
    tu utilise quoi pour faire ta transformation ?

  3. #3
    Nouveau Candidat au Club
    Bonjour,

    Normalement j'utilise le php et mysql?

    Merci pour aide.

  4. #4
    Expert éminent sénior
    je vois 2 possibilités mais je ne pourrais pas te dire laquelle est la plus performante
    1) tu mets le contenu de la transformation dans un fichier temporaire et tu exécute "mysql < fichier.sql"
    2) tu découpes pour envoyer les requêtes une après l'autre avec les fonctions php "mysql_..."

  5. #5
    Nouveau Candidat au Club
    Bonjour Mathix,

    Merci pour ta réponse.

    Est ce que tu pourras bien m'expliquer la deuxieme proposition, en faite je travaille sous phpmyadmin.

    Si c'est possible avec exemple.


  6. #6
    Expert éminent sénior
    phpMyAdmin ? tu veux juste insérer une seule fois le contenu du fichier ou bien tu veux faire un programme en PHP qui fait ca régulièrement

  7. #7
    Nouveau Candidat au Club
    J'ai besoin d'un prg qui insere les données regulierement

  8. #8
    Expert éminent sénior
    pas de problème, c'est faisable 8) 8) 8)

    1ère étape : utilise PHP pour faire la transformation XSL
    tu trouvera un exemple de code PHP qui fait ca à l'adresse suivante :
    http://bob.developpez.com/phpxslt/

    2ème étape : toujours en PHP : tu fait une des 2 possibilités que je t'ai proposé ci dessus

    comme tu vois tout ce fait en PHP, c'est un peu hors sujet ici donc jette un coup d'oeil sur la partie PHP de developpez.com


    correction au sujet de ta transformation :
    en mysql tu dois entrourer les chaines de caractères par " ou '

  9. #9
    Nouveau Candidat au Club
    Merci pour ta réponse,

    je visiterai lien que tu m'a communiqué, et je te dirai apres, est ce c'est resolu ou non.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    correction au sujet de ta transformation : 
    en mysql tu dois entrourer les chaines de caractères par " ou '


    T'as raison, je le rectifierai, merci encore.

    Donc, à plus tard

  10. #10
    Candidat au Club
    Bonsoir, j'éssay aussi de faire la transformation d'un fichier XML vers une base de données, si vous pouvez bien m'indiquer comment vous l'avez fait ,je serai reconaissante.

  11. #11
    Nouveau Candidat au Club
    Transformation XML to JAVA
    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
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.StringReader;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;
    import org.w3c.dom.*;
     
     
    private BufferedReader fileReader;
     
    fileReader = new BufferedReader(new FileReader("C:/teste.txt"));
     
    String line = fileReader.readLine();
    if (line!=null)
    {
    	line=fileReader.readLine();
    	if (line==null)
    	{
    		return null;
    	}
    	Document xmdoc = new SAXBuilder().build(new StringReader(line));
    	return xmdoc;
    } else
    {
    	return null;
    }


    // xmdoc retourné c'est le document transformé en XML ,maintenant vous pouvez travailler et traiter xmdoc comme un document XML càd (possibilité d'appliquer les fonctions Element racine = xmdoc.getRootElement() ou getChildText ou .getAttributeValue("livre") .... pour extraire les données depuis le fichier xml qui été au début un fichier texte) (Enjoy )

    ::anaMario::

  12. #12
    Candidat au Club
    génération fichier sql depuis un fichier xml
    Bonjour,
    J'essaie également de faire la transformation de fichier xml pour générer les requêtes sql afin de l'envoyer dans ma bas de donnée MYSQL,

    seul hic mon fichier xml est vraiment moche il n'est pas structuré je n'ai pas de xsl. donc là je sais pas trop comment faire


    je comprends pas aussi c'est pas xsl qui permet de faire la transformation c'est xslt non?


    j'ai une autre question aussi xslt permet il de parser les fichiers comme DOM ET SAX ?


    merci

  13. #13
    Candidat au Club
    Citation Envoyé par largiss Voir le message
    Bonjour,

    Je voudrai bien insérer mes données du fichier XML vers ma base de donnée.

    bouks.xml

    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
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="books.xsl"?>
    <books>
    	<book>
        	<title>Dilbert</title>
    	    <author>Scott Adams</author>
    		<price>13</price>
    	</book>
    	<book>
        	<title>Le seigneur des anneaux</title>
    	    <author>J.R.R Tolkien</author>
    		<price>12.50</price>
    	</book>
    	<book>
        	<title>Harry Potter à l'ecole des sorciers</title>
    	    <author>J.K. Rowling</author>
    		<price>8.54</price>
    	</book>
    	<book>
        	<title>les misérables</title>
    	    <author>Victor Higo</author>
    		<price>7.50</price>
    	</book>
    </books>


    books.xsl

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns<img src="images/smilies/icon_mad.gif" border="0" alt="" title=":x" class="inlineimg" />sl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:template match="books/book">
    			<xsl:text> INSERT INTO books (title, author, price) VALUES ( </xsl:text>
    			<xsl:value-of select="title"/>
    			<xsl:text>, </xsl:text>
    			<xsl:value-of select="author"/>
    			<xsl:text>, </xsl:text>
    			<xsl:value-of select="price"/>
    			<xsl:text> </xsl:text>
    			<xsl:text>);</xsl:text><br/> 		
    	</xsl:template>
    </xsl:stylesheet>


    execution du books.xml est la suivante :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO books (title, author, price) VALUES ( Dilbert, Scott Adams, 13 );
    INSERT INTO books (title, author, price) VALUES ( Le seigneur des anneaux, J.R.R Tolkien, 12.50 );
    INSERT INTO books (title, author, price) VALUES ( Harry Potter à l'ecole des sorciers, J.K. Rowling, 8.54 );
    INSERT INTO books (title, author, price) VALUES ( les misérables, Victor Higo, 7.50 );

    Mais je voudrais bien inserer mes données dans ma table.
    Comment puis-je faire ??
    Juste une petite correction dans le code xml, ligne 2 : xml-stylesheet avec un -

  14. #14
    Candidat au Club
    Citation Envoyé par JMLIT Voir le message
    Juste une petite correction dans le code xml, ligne 2 : xml-stylesheet avec un -
    Merci ! En effet, sans cette correction le code plante : Avis aux autres

  15. #15
    Nouveau Candidat au Club
    salut svp comment je peux inserer un document xml dans la base de donnee en utilisant JAVA