Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Base De données - Parser XML

Sujet résolu
    23 mai 2013 à 22:42:21

    Salut à tous !

    Décidément j'ai plein de questions ^^' (Je vous promet que je cherche partout sur google à chaque fois !)

    Mon problème actuel est de nourrir ma base de données.

    Ça peut paraitre idiot mais d'où est-ce qu'on sort toutes les données de la base ?
    Dans la mesure ou cette base de donnée est plutôt en lecture qu'en écriture utilisateur, et que j'ai pas mal de données en stock, comment les incorporer ?

    Mes données sont sous la forme de plusieurs fichiers xml, j'ai pensé intégrer un parseur mais ce serait pas un peu lourd pour un téléphone ?

    Un import via un fichier csv ou sql non ?

    Merci !

    -
    Edité par Anaroyondo 25 mai 2013 à 0:04:44

    • Partager sur Facebook
    • Partager sur Twitter
      23 mai 2013 à 23:04:19

      Voilà 2 liens qui devraient répondre à quelques unes de tes questions :

      http://mobile.tutsplus.com/tutorials/android/android-sdk_database-dates/

      http://www.tutos-android.com/contentprovider-android

      • Partager sur Facebook
      • Partager sur Twitter
        25 mai 2013 à 0:04:22

        Ca m'aura aidé merci :-)

        Pour ceux qui se posent la question comme moi il y a peu, il est possible et apparemment courant d'utiliser le parçage d'un fichier xml pour nourrir une base de donnée.
        J'essaie en réel plus tard mais sur l'émulateur ça n'a pas l'air de bouffer un temps monstrueux...

        Comme j'ai eu beaucoup de mal à trouver comment parser le XML sur android, je vais détailler un peu pour les pauvres âmes ^^
        Je ne sais pas si c'est la façon la plus correcte mais elle a le mérite de marcher et d'être à la portée d'un débutant (la preuve)

        Mettez vos fichiers XML dans le dossier assets et faites ceci (là c'est dans mon activity) :
        (Si vous mettez les xml dans res, R va vouloir les interpréter)

        AssetManager mgr = this.getAssets();
        try {
        	InputStream in = mgr.open("fichiersSources/2007N.xml");
        	xmlHandler = new XMLHandler(in);
        } catch (IOException e) { e.printStackTrace();	}

        Avec ceci pour le constructeur de ma classe xmlHandler :

        Element root;
        
        public XMLHandler(InputStream fileName){
        	try {
        		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        		DocumentBuilder builder = factory.newDocumentBuilder();
        		Document dom = builder.parse(fileName);
        		this.root = dom.getDocumentElement();
        	} catch (FileNotFoundException e) { 	e.printStackTrace();
        	} catch (SAXException e) { 			e.printStackTrace();
        	} catch (IOException e) { 			e.printStackTrace();
        	} catch (ParserConfigurationException e) {	e.printStackTrace();
        	}
        }


        Comme vous le voyez j'ai utilisé le DOM, apparemment le SAX serait plus rapide mais je le maitrise moins et il ne correspondait pas à ce que je cherchais (donc au pire je mettrais un "sablier")

        Il y a aussi le XmlPullParser comme dans un des liens ci-dessus mais j'avoue avoir eu du mal à en comprendre l'intérêt et la portée (contrairement à la dichotomie SAX vs DOM qui est bien documentée)... J'ai peut-être pas beaucoup cherché pour le coup...

        Bref voilà, sujet résolu !

        • Partager sur Facebook
        • Partager sur Twitter

        [Android] Base De données - Parser XML

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown