2012-11-26 51 views
0

我有一个android应用程序读取一个XML文件并向用户提供一些信息。数据结构是一个简单的ArrayList。用户浏览列表,他们可能会做出更改,或者他们可能不会仅仅依赖于更改。当他们完成后,他们保存。支持DataStructure输入

最终我们需要关于RDBMS的数据,但他们可能没有数据连接,所以我需要坚持下去。即使他们确实有数据连接,我也许会感觉很舒服,因为我知道我已将数据结构序列化到SD卡。

因此,第一步是将其保存为二进制状态(它是一个非常小的数据对象)或将它序列化为XML,这正是我一开始所想的。这样它可以上传到它的XML格式的Web服务。

如果我将它序列化为XML,有没有任何库/示例可以阅读。我使用SAX来解析它,但是认为必须有一个简单的超载来转储它?

伪代码:

ArrayList<MyOb>; 
MyObj.Serialize("doc.xml"); 

如果我坚持它在它的二进制状态是什么,我需要当用户确实有一个数据连接,这是时间t上传来考虑的步骤。

TIA JB

回答

0

我与持久化数据的SD卡XML去。从我能看出的这是最好的方法。

1

您可以使用一个伟大的图书馆JAXB(Java体系XML绑定)

JAVA豆< ---> XML数据

JAXB Basic Tutorial

下面是一些示例代码,给你一些它的味道

@XmlRootElement 
public class Customer { 

    String name; 
    int age; 
    int id; 

    public String getName() { 
     return name; 
    } 

    @XmlElement 
    public void setName(String name) { 
     this.name = name; 
    } 

    public int getAge() { 
     return age; 
    } 

    @XmlElement 
    public void setAge(int age) { 
     this.age = age; 
    } 

    public int getId() { 
     return id; 
    } 

    @XmlAttribute 
    public void setId(int id) { 
     this.id = id; 
    } 

} 

XML使用此代码构成:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<customer id="100"> 
    <age>29</age> 
    <name>mkyong</name> 
</customer> 
+0

通过阅读这听起来像一个很好的选择....直到我看到所有的旋转我不得不通过获取JAXB.xml.bind到Android应用程序。这是预期的吗? – GPGVM

+0

没有得到你?你什么意思? –

+0

使用针对android 2.3.3及更高版本的jdk 1.6。我做的第一件事是尝试添加导入路径,并且绑定命名空间不在那里。所以缺少javax.xml.bind。 Google透露了这个解释:http://www.docx4java.org/blog/2012/05/jaxb-can-be-made-to-run-on-android/如果真的,那么我认为我的时间会更好地解决这里的问题与XStream库有关。 http://stackoverflow.com/questions/13588780/error-converting-xml-to-custom-object – GPGVM