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

Format d'échange (XML, JSON...) Java Discussion :

Parser un XML et l'insérer dans SQLite


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut Parser un XML et l'insérer dans SQLite
    Bonjour ,

    Je n'arrive pas a trouver de solution sur internet pour ajouter mes données parser du XML ( actuellement fait avec du SAX) et les insérer dans une base de données Sqlite.

    Mon projet consiste a lire un fichier xml (local), l’insérer dans la base de donnée sqlite et montrer les différents clients dans un list view.

    Lors du lancement de mon application, j'ai plusieurs erreurs, il me dit qu'il ne trouve pas mon SAXBuilder.(alors que j'ai bien ajouter mon Jdom au classpath)

    Ensuite il y a un point ( surement essentiel) que je n'est pas compris, j'ai mon fichier xml en locale , et celui-ci est a la racine de mon projet, cependant , ne doit il pas être autre part?

    Je tiens a préciser que le code utiliser pour parser le XML marche sur une application java.

    En attendant une réponse avec impatience ^^.

  2. #2
    Membre expérimenté
    Profil pro
    Opération
    Inscrit en
    Décembre 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Opération

    Informations forums :
    Inscription : Décembre 2012
    Messages : 91
    Par défaut
    Citation Envoyé par leenox Voir le message
    Lors du lancement de mon application, j'ai plusieurs erreurs, il me dit qu'il ne trouve pas mon SAXBuilder.(alors que j'ai bien ajouter mon Jdom au classpath)
    Il me semble que depuis java 5, une implémentation de sax est inclue. Donc pourquoi ajouter jdom au class path ?

    Quelle est la trace complète de l'erreur ?

    Citation Envoyé par leenox Voir le message
    Ensuite il y a un point ( surement essentiel) que je n'est pas compris, j'ai mon fichier xml en locale , et celui-ci est a la racine de mon projet, cependant , ne doit il pas être autre part?
    Si le fichier xml n'est pas embarqué dans l'application (chargé avec getRessource), Il me semple que l'utilisateur doit pouvoir indiquer l'emplacement du fichier via la GUI ou via la ligne de commande.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par leenox Voir le message
    (alors que j'ai bien ajouter mon Jdom au classpath)
    'Faut croire que le truc qui lance ton application n'est pas d'accord avec cette affirmation.

    Citation Envoyé par jdevbe Voir le message
    Il me semble que depuis java 5, une implémentation de sax est inclue. Donc pourquoi ajouter jdom au class path ?
    SAXBuilder est une classe de JDOM seulement. Et le seul rapport avec SAX, c'est que ça utilise SAX pour construire le Document.
    En réalité JDOM sert à manipuler du XML avec une approche DOM, pas SAX.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut
    02-11 09:10:39.114: E/Trace(1149): error opening trace file: No such file or directory (2)

    Could not find class 'org.jdom.input.SAXBuilder', referenced from method com.example.td_xml.JDOM2.main

    E/AndroidRuntime(1149): java.lang.NoClassDefFoundError: org.jdom.Element

    Voici les erreurs que j'ai .


    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
    package com.example.td_xml;
     
     
     
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
     
    public class MainActivity extends Activity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            GestionBd gestion = new GestionBd(this);
            gestion.open();
            gestion.supprimeClients();
            gestion.ajouteClient(new Client("bo","156545"));
            gestion.ajouteClient(new Client("toto","123456789"));
     
            gestion.ajouteClient(new Client (JDOM2.donneNomClients().get(0),"jd"));
     
     
     
            ArrayAdapter<String> MonBaseAdapter = new ArrayAdapter<String>(this,R.layout.doubletexte,R.id.textView1,gestion.donneNomClients());
            gestion.close();
            ListView listView = (ListView) findViewById(R.id.listView1);
            listView.setAdapter(MonBaseAdapter);
        }
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_main, menu);
     
            return true;
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     gestion.ajouteClient(new Client (JDOM2.donneNomClients().get(0),"jd"));
    C'est cette ligne qui fait planter mon projet , sans elle j'ai bien mes deux autres utilisateurs dans le list view.

    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
    45
    46
    47
    48
    49
    50
    package com.example.td_xml;
     
    import java.io.*;
     
    import org.jdom.Element;
     
    import org.jdom.input.SAXBuilder;
     
     
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Iterator;
     
    public class JDOM2
    {
       static org.jdom.Document document;
       static Element racine;
       static org.jdom.input.SAXBuilder saxbuilder;
     
     
       public static void main(String[] args)
       {
    	   saxbuilder = new SAXBuilder();
          try
          {
     
             document = saxbuilder.build(new File("Exercice2.xml"));
          }
          catch(Exception e){}
          racine = document.getRootElement();
     
     
          donneNomClients();
       }
    	public static ArrayList<String> donneNomClients(){
    	      List listEtudiants = racine.getChildren("client");
    	      ArrayList<String> k = new ArrayList<String>();
    	      Iterator i = listEtudiants.iterator();
    	     // while(i.hasNext())
    	     // {
    	      for (int j = 0; j < listEtudiants.size(); ++j){
    	         Element courant = (Element)i.next();
    	         String l =courant.getChildText("nom"+j);
    	         k.add(l);   
    	}
    		return k;
     
     
     
    }}
    Le code pour parser , celui ci marche dans une java application .

    Si le fichier xml n'est pas embarqué dans l'application (chargé avec getRessource), Il me semple que l'utilisateur doit pouvoir indiquer l'emplacement du fichier via la GUI ou via la ligne de commande.
    Pourrais-tu m'expliquer comment marche le getRessource? et si possible comment l'utiliser? Je pense que le gros de mon problème viens de la.

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Étrange ces import org.jdom. . Tu utilises JDOM 1, pas JDOM 2 ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut
    justement j'ai essayé les deux. j'ai le jdom 2.0.4.

    J'ai exactement les mêmes erreurs avec jdom1 et jdom2.

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Pour info, avec JDOM 2 les imports sont en org.jdom2., autrement dit les deux versions ne sont pas interchangeables.

    Mais si tu dis que tu as essayé les deux à chaque fois, alors au moins une aurait dû marcher. Si ce n'est pas le cas c'est que le classpath, d'une manière ou d'une autre, n'incluait pas la bibliothèque.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut
    elles ne sont pas interchangeable ? Ca veux dire que si j'ajoute dans le build path jdom2 et que je change les imports ca marche pas?

    y a t-il un moyen de vérifier si les bibliothèques sont bien incluses dans le classpath?

    Excuse moi pour toutes ces questions , je suis vraiment perdu en JAVA et surtout avec les parseurs...

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par leenox Voir le message
    elles ne sont pas interchangeable ? Ca veux dire que si j'ajoute dans le build path jdom2 et que je change les imports ca marche pas?
    Si. Mais il faut faire les deux. Et il peut y avoir d'autres différences entre une version et l'autre, mais là l'erreur serait différente.

    Citation Envoyé par leenox Voir le message
    y a t-il un moyen de vérifier si les bibliothèques sont bien incluses dans le classpath?
    Bah en principe, utiliser une classe venant de ces bibliothèques, est un bon moyen... Si ça marche pas pour cause de NoClassDefFoundException c'est que la classe n'est pas dans accessible au ClassLoader, ce qui normalement veut dire qu'elle n'est pas dans le classpath.

    Peut-être qu'il y a des nuances sur Android, je ne sais pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut
    Merci pour tes explications , je comprend un peu mieux.

    Je me pose encore quelques questions :

    -Tu m'as parlé de getRessource , pourrais tu me dire comment ça marche?

    -Etant donné que ma classe JDOM2 marche sur une java application, y a t'il pas un autre moyen de faire? plutôt que de recopier la classe dans mon android pack ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/02/2013, 00h23
  2. Réponses: 5
    Dernier message: 11/06/2012, 13h58
  3. [SimpleXML] Parser du XML dans mon php
    Par onet dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 14/02/2007, 10h09
  4. Parser du XML dans Delphi 2005 Personnal
    Par isual dans le forum Delphi
    Réponses: 8
    Dernier message: 07/12/2006, 20h14
  5. [BeanShell][Xml] Parser du XML dans un script BeanShell
    Par bulbo dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 16/08/2006, 15h26

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