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