在Android中将SQLite数据库导出到XML文件

我知道这是可能的,但我不确定从哪里开始。 有没有人能够实现这一目标?

谢谢。

Solutions Collecting From Web of "在Android中将SQLite数据库导出到XML文件"

本文中介绍的DataXmlExporter类将把SQL精简版数据库导出到XML文件。

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

完整的例子可以在这个SVN回购。 ManageData类调用导出。

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

您将需要创build一个公开数据库的应用程序类,并将其作为AndroidManifest.xml文件中的应用程序名称引用。 然后使用该数据库作为DataXmlExporter构造函数的参数。

这是我使用的应用程序类。 你应该已经有了一个扩展SQLiteOpenHelper的类(可能不叫DatabaseHelper

 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; } } 

看看这里的源代码exporting-a-sqlite-database-to-an-xml-file-in-android

我必须做的唯一更改(停止一些Eclipse警告)是closuresexportData()方法中的游标。 为了使代码更具可移植性,我还将XML文件和位置作为parameter passing,而不是作为声明的最终字段。

该代码将XML文件写入SD卡。 现在,在他的博客中列出源代码的@mmaitlen没有添加任何function来testing是否存在外部存储单元。 所以这是留给你去做的。

但是,您可以embedded一些简单的代码来testing是否存在可写入的存储卡,其代码如下(未经testing):

  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 } 

如果您要创build超过内部容量的大文件,则testing外部存储是非常有用的。

我发现这非常有帮助:

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

使用以下方法将其导出到SD卡:

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

当然不要忘记:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>