如何在追加模式下编写XML文件

时间:2011-09-08 16:34:48

标签: android xml

根据Simple XML framework,我正在尝试使用Loose object mapping tutorial将联系人列表写入XML文件。我想要这样的东西

<ContactsList>
    <Contact id="1">
        <name>John Doe</name>
        <address>Somewhere</address>
    </Contact>
    <Contact id="2">
        <name>Homer Simpson</name>
        <address>Somewhere</address>
    </Contact>
    <Contact id="3">
        <name>Flash McQueen</name>
        <address>Somewhere</address>
    </Contact>
</ContactsList>

这是我的Contact.java

public class Contact {
    @Attribute(name = "id") 
    public int id;      

    @Element(name="Nom")                
    String name;         

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

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

这就是我打电话给所有联系人的方式

Serializer serializer = new Persister();
ContentResolver cr = c.getContentResolver();
Cursor cu = cr.query(URI, null, null, null, null);

taille = cu.getCount();          
if (taille > 0) {                             
// Loop over all contacts
Contact [] contact = new Contact[taille];
int k = 0;
while (cu.moveToNext()) {   
    name = cu.getString(cu.getColumnIndex(DNAME));
    id = cu.getString(cu.getColumnIndex(ID));  

    contact[k] = new Contact();
    contact[k].setName(name);
    contact[k].setId(id);        
    serializer.write(contact[k], xmlFile);
    k++;
    }
}

问题是,我只收到最后一次存储的联系人,好像文件在循环时被压缩了。我现在正在寻找一种在追加模式下写入xmlFile的方法。我找不到用serializer.write方法写入追加模式的方法。或者有更好的方法来做我想要的事情?

1 个答案:

答案 0 :(得分:0)

我建议你使用你需要的java库。
请记住,我在独立的java应用程序中使用它,所以你必须检查是否有可行的Android编程。
一般来说,有几种浏览和/或编写XML的方法,Java有3种不同的方法(据我所知): DOM 图书馆, SAX 库, STAX 库如果文档不太长,Dom适合您的目的,否则使用sax或stax是面向事件的库,表明使用更少的内存(并且因为你& #39;重新开发移动设备我觉得它更好。)希望有所帮助