CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 9mm con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

Come popolare DB Sqlite con file XML

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jul 2012
    Messaggi
    3

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Come popolare DB Sqlite con file XML

    Buongiorno a tutti è la prima volta che scrivo sul forum quindi non so se ho scritto nel posto giusto.
    Ho cercato parecchio su vari forum ma non ho trovato nulla, mi spiego meglio io ho un database pre-costruito e vorrei popolarlo con un file xml che
    prelevo con un download da un server...ho tutto solo non riesco a capire e trovare anche solo un es di codice sull'import dei dati da XML a Sqlite; ho trovato
    solo import da file csv o txt.
    Spero mi possiate aiutare
    Grazie in anticipo

  2.  
  3. #2
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Ciao, credo che se cerchi 'parse xml file sqlite' troverai molti esempi

    Inviato dal mio Galaxy Nexus con Tapatalk 2
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  4. #3
    Baby Droid


    Registrato dal
    Jul 2012
    Messaggi
    3

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da frank17next Visualizza il messaggio
    Ciao, credo che se cerchi 'parse xml file sqlite' troverai molti esempi

    Inviato dal mio Galaxy Nexus con Tapatalk 2
    Ringrazio per la dritta id cosa cercare ho trovato alcuni esempi, ho pero ancora il problema d capire bene come funziona ovvero il parser DOM e SAX lavorano su un url dove vi sono i tag html mentre io voglio fare la stessa cosa ma con un file xml in locale...se avete forum o discussioni su cui vi siete gia documentati mi farebbero comodo o altrimenti se riuscite a spiegarmi a grandi linee come fare.
    grazie

  5. #4
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Località
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Ho trovato un buon esempio:

    Esempio File da importare:
    codice:
    <packingList>
        <category name="test">
        </category>
    <packingList>
    Codice per leggere e fare il parse del file xml:
    codice:
    ArrayList<Category> categories;
    XmlPullParser parser = Xml.newPullParser();
    try {
        FileInputStream fIn = openFileInput(FILE_NAME); 
        InputStreamReader isr = new InputStreamReader(fIn);
        
        // auto-detect the encoding from the stream
        parser.setInput(isr);
        int eventType = parser.getEventType();
        Category currentCategory = null;
        boolean done = false;
        while (eventType != XmlPullParser.END_DOCUMENT && !done){
            String name = null;
            switch (eventType){
                case XmlPullParser.START_DOCUMENT:
                    break;
                case XmlPullParser.START_TAG:
                    name = parser.getName();
                    if (name.equalsIgnoreCase("packingList")){
                        categories = new ArrayList<Category>();
                    } else if (categories != null){
                        if (name.equalsIgnoreCase("category"))
                        currentCategory = new Category(parser.getAttributeValue(0)); 
                    }
                    break;
                case XmlPullParser.END_TAG:
                    name = parser.getName();
                    if (name.equalsIgnoreCase("category") && 
                        currentCategory != null){
                        categories.add(0, currentCategory);
                    } else if (name.equalsIgnoreCase("packingList")){
                        done = true;
                    }
                    break;
                }
            eventType = parser.next();
            }
    } catch (FileNotFoundException e) {
        // TODO
    } catch (IOException e) {
        // TODO
    } catch (Exception e){
        // TODO
    }
    Chiaramente dovrai adattare il tuo codice in modo che il valore della Stringa 'name' venga inserito con una insert nel database.

    Consiglio: se devi parsare delle stringhe taggate in un xml remoto (in realtà da scaricare in locale e poi parsare), perchè non utilizzi dei webservices?

    Fonte
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy