基于Android XML解析與保存的實(shí)現(xiàn)
解析XML文件:
在Android平臺(tái)上可以使用SAX、DOM和Android附帶的pull解析器解析XML文件;
pull解析器提供了各種事件,使用parser.next()方法進(jìn)入下一個(gè)元素并觸發(fā)相應(yīng)事件,pull解析器產(chǎn)生的事件是一個(gè)數(shù)字,可以通過(guò)switch對(duì)感興趣的事件進(jìn)行處理;通過(guò)paser.nextText()方法可以獲取下一個(gè)Text類型的節(jié)點(diǎn)的值;
http://xmlpull.org/xmlpull-website/impls.shtml;
讀取XML
XmlPullParser pullParser = Xml.newPullParser();
pullParser.setInput(xml, "UTF-8");//為破解器添加要解析的XML數(shù)據(jù)
int event = pullParser.getEventType();//開始讀取,獲取事件返回值
pullParser.getName();//獲取節(jié)點(diǎn)名稱
pullParser.getAttributeValue(0);//獲取第一個(gè)屬性的值
pullParser.nextText();//獲取標(biāo)簽之后的節(jié)點(diǎn)的內(nèi)容
event = pullParser.next();//解析器遇到結(jié)束標(biāo)簽不會(huì)自動(dòng)向下解析,需要調(diào)用此方法進(jìn)行繼續(xù)執(zhí)行;
保存文件到XML
public static void save(List<Person> persons, OutputStream outStream)
throws Exception, IllegalStateException, IOException {
XmlSerializer serializer = Xml.newSerializer();//獲取XML寫入信息的序列化對(duì)象
serializer.setOutput(outStream, "UTF-8");//設(shè)置要寫入的OutputStream
serializer.startDocument("UTF-8", true);//設(shè)置文檔標(biāo)簽
serializer.startTag(null, "persons");//設(shè)置開始標(biāo)簽,第一個(gè)參數(shù)為namespace
for (Person person : persons) {
serializer.startTag(null, "person");
serializer.attribute(null, "id", person.getId().toString());
serializer.startTag(null, "name");
serializer.text(person.getName());
serializer.endTag(null, "name");
serializer.startTag(null, "age");
serializer.text(person.getAge().toString());
serializer.endTag(null, "age");
serializer.endTag(null, "person");
}
serializer.endTag(null, "persons");
serializer.endDocument();
outStream.flush();
outStream.close();
}
- android通用xml解析方法
- android layout XML解析錯(cuò)誤的解決方法
- Android中使用sax解析xml文件的方法
- Android 解析XML 文件的四種方法總結(jié)
- Android中使用PULL方式解析XML文件深入介紹
- Android提高之XML解析與生成實(shí)例詳解
- Android 使用Pull方法解析XML文件的方法
- android編程之XML文件解析方法詳解(附源碼)
- Android使用Pull解析器解析xml文件的實(shí)現(xiàn)代碼
- 19個(gè)Android常用工具類匯總
- android 一些工具類匯總
- Android開發(fā)中解析xml文件XmlUtils工具類與用法示例
相關(guān)文章
Android自定義View實(shí)現(xiàn)圓形加載進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)圓形加載進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06android在異步任務(wù)中關(guān)閉Cursor的代碼方法
android在異步任務(wù)中如何關(guān)閉Cursor?在我們開發(fā)應(yīng)用的時(shí)候,很多時(shí)候會(huì)遇到這種問(wèn)題,下面我們就看看代碼如何實(shí)現(xiàn)2013-11-11Android studio實(shí)現(xiàn)滑動(dòng)開關(guān)
這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)滑動(dòng)開關(guān),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03仿墨跡天氣在Android App中實(shí)現(xiàn)自定義zip皮膚更換
這篇文章主要介紹了仿墨跡天氣在Android App中實(shí)現(xiàn)自定義zip皮膚更換的方法,即讓用戶可以自行通過(guò)自制或者下載的zip皮膚包進(jìn)行換膚,需要的朋友可以參考下2016-02-02Android后臺(tái)線程和UI線程通訊實(shí)例
這篇文章主要介紹了Android后臺(tái)線程和UI線程通訊實(shí)例,每一步的要點(diǎn)和步驟都有提及,并配有代碼例子,需要的朋友可以參考下2014-06-06Android實(shí)現(xiàn)左右滑動(dòng)效果的方法詳解
本篇文章是對(duì)Android實(shí)現(xiàn)左右滑動(dòng)效果的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Android自定義控件案例匯總2(自定義開關(guān)、下拉刷新、側(cè)滑菜單)
這篇文章主要介紹了Android自定義控件案例匯總,自定義開關(guān)、Listview實(shí)現(xiàn)下拉刷新、側(cè)滑菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Android Recyclerview實(shí)現(xiàn)水平分頁(yè)GridView效果示例
本篇文章主要介紹了Android Recyclerview實(shí)現(xiàn)水平分頁(yè)GridView效果示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08