Exportación de una base de datos SQLite a un archivo XML en Android

Sé que esto es posible pero no estoy realmente seguro por dónde empezar. ¿Alguien ha sido capaz de lograr esto?

Gracias.

La clase DataXmlExporter descrita en este artículo exportará un DB de SQL lite a un archivo XML.

http://www.screaming-penguin.com/node/7749

El ejemplo completo está disponible en este reporte SVN. La clase ManageData invoca la exportación.

http://totsp.com/svn/repo/AndroidExamples/trunk/

Necesitará crear una clase de aplicación que exponga la base de datos y se haga referencia como el nombre de la aplicación en el archivo AndroidManifest.xml. A continuación, utilice ese DB como el argumento para el constructor DataXmlExporter .

Esta es la clase de aplicación que utilizo. Ya deberías tener una clase (probablemente no denominada DatabaseHelper ) que extiende SQLiteOpenHelper

 package com.billybobbain.android.someapp; import android.app.Application; import android.util.Log; public class MyApplication extends Application { public static final String APP_NAME = "SomeApp"; private DatabaseHelper dataHelper; @Override public void onCreate() { super.onCreate(); Log.d(APP_NAME, "APPLICATION onCreate"); this.dataHelper = new DatabaseHelper(this); } @Override public void onTerminate() { Log.d(APP_NAME, "APPLICATION onTerminate"); super.onTerminate(); } public DatabaseHelper getDataHelper() { return this.dataHelper; } public void setDataHelper(DatabaseHelper dataHelper) { this.dataHelper = dataHelper; } } 

Echa un vistazo al código fuente aquí exportando-a-sqlite-base de datos-a-un-xml-file-in-android

El único cambio que tuve que hacer (para detener algunas advertencias de Eclipse) era cerrar un cursor en el método exportData (). Para que el código sea más portátil, también pasé el archivo XML y la ubicación como un argumento y no como un campo final declarado.

El código escribe el archivo XML en la tarjeta SD. Ahora, @mmaitlen que enumeró el código fuente en su blog no agrega ninguna característica para probar la existencia de una unidad de almacenamiento externa. Así que eso te queda por hacer.

Sin embargo, puede incrustar un código simple para probar la existencia de una tarjeta de memoria grabable con el siguiente fragmento (no probado):

  sdOkToWrite = false; String sdTest = Environment.getExternalStorageState(); if (sdTest.equals(Environment.MEDIA_MOUNTED)) { sdOkToWrite = true; } else { // Here's where you can code what to do without the external storage } 

La prueba para el almacenamiento externo es útil si tiene archivos grandes para crear que pueden exceder la capacidad interna.

Me pareció muy útil:

http://www.phonesdevelopers.com/1788273/

Usándolo de la siguiente manera para exportarlo a la tarjeta sd:

 File sd = Environment.getExternalStorageDirectory(); String path = sd + "/" + DB_NAME + ".xml"; DatabaseDump databaseDump = new DatabaseDump(mySQLiteOpenHelperObject.getReadableDatabase(), path); databaseDump.exportData(); 

Por supuesto, no olvide:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
  • Configuración de alfa en un BitmapDrawable en XML
  • Android AnalogClock: configuración de programación por programación
  • Establecer el ancho del botón en Android
  • Cambie el color del texto mientras que la progresión llena debajo del texto
  • Ancho del elemento RecyclerView layout_width = "match_parent" no coincide con el padre
  • La generación de Gradle falla debido a la entrada duplicada en strings.xml
  • ¿Cómo puedo analizar XML android?
  • Android Studio - No se puede inflar la etiqueta de vista sin atributo de clase
  • LinearLayout: Alineación a la derecha del padre
  • Android - acceso a los activos de la aplicación de prueba
  • ¿Buenas herramientas para desarrollar una GUI en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.