2012-11-26 47 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