vendredi 22 mai 2015

check before parsing XML files

Hello I need to check the database files before parsing XML if there is the id field update if not insert...but my check doesn't work... I'm a dummy sorry This is the method in DBHelper

 public class DBHelper extends SQLiteOpenHelper{    
        public boolean checkField(String id) {

                        String returned = "";
    DBHelper dbh = new DBHelper(context);
                        dbh.open();

                    Cursor c = myDb.rawQuery(
                            " Select " + IdsTable.Persona.idWeb + " FROM "
                              + IdsTable.Persona.nomeTable + " WHERE "
                              + IdsTable.Persona.idWeb + " >'" + 0
                              + "'", null);

                    if (c.getCount() > 0) {
                        myDb.update(IdsTable.Persona.nomeTable, null, IdsTable.Persona.id
                                + " = ?", new String[] { id });
                        c.moveToFirst();
                        while (!c.isAfterLast()) {
                            int o = 0;
                            returned = c.getString(o);
                            c.moveToNext();
                        }
                        c.close();
                        dbh.close();
                        return true;

                    } else {
                        ContentValues values = new ContentValues();

                        values.put(IdsTable.Persona.id, id);

                        myDb.insert(IdsTable.Persona.nomeTable, IdsTable.Persona.id, null);
                        dbh.close();
                        return false;
                    }

                }
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            final AssetManager assetManager = getAssets();
            try {
                String[] filelist = assetManager.list("");
                if (filelist == null) {
                    // dir does not exist or is not a directory
                } else {
                    for (int i = 0; i < filelist.length; i++) {
                        // Get filename of file or directory
                        String filename = filelist[i];
                        Log.i("asdf", "Nome File: " + filename);
                        // isolare i file xml
                        if (filename.toLowerCase().contains(".xml"))
                            pathOfXmlFiles.add(filename);
                    }

                    for (int i = 0; i < pathOfXmlFiles.size(); i++) {
                        InputStream is = assetManager.open(pathOfXmlFiles.get(i));
                        // InputStream is = new
                        // ByteArrayInputStream(pathOfFileString.getBytes());

                        DocumentBuilderFactory dbFactory = DocumentBuilderFactory
                                .newInstance();
                        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                        Document doc = dBuilder.parse(is);
                        doc.getDocumentElement().normalize();

                        NodeList group = doc.getElementsByTagName("persona");
                        for (int j = 0; j < group.getLength(); j++) {
                            Node nNode = group.item(j);
                            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                                Element groupElement = (Element) nNode;

                                String nome = groupElement
                                        .getElementsByTagName("nome").item(0)
                                        .getTextContent();
                                String cognome = groupElement
                                        .getElementsByTagName("cognome").item(0)
                                        .getTextContent();
                                String eta = groupElement
                                        .getElementsByTagName("eta").item(0)
                                        .getTextContent();
                                String idWeb = groupElement.getAttribute("idWeb");
    //                          String id = groupElement.getAttribute("id");
                                // String idWeb = groupElement
                                // .getElementsByTagName("idWeb").item(0)
                                // .getTextContent();

                                // prende i fiel xml parsati e li inserisce nel db
                                // bisogna aprire prima il db

                                DBHelper dbh = new DBHelper(getApplicationContext());
                                dbh.open();
    //                          dbh.checkField(id);
                                dbh.insertLabel(nome, cognome, eta, idWeb);
                                dbh.close();
                                Log.i("asdf", "Persona: " + nome + " " + cognome
                                        + " " + eta + " " + idWeb + " ");


        } 

Aucun commentaire:

Enregistrer un commentaire