基于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ù)字,可以通過switch對感興趣的事件進(jìn)行處理;通過paser.nextText()方法可以獲取下一個(gè)Text類型的節(jié)點(diǎn)的值;
http://xmlpull.org/xmlpull-website/impls.shtml;
讀取XML
XmlPullParser pullParser = Xml.newPullParser();
pullParser.setInput(xml, "UTF-8");
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寫入信息的序列化對象
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();
}
相關(guān)文章
簡單實(shí)現(xiàn)Android學(xué)生管理系統(tǒng)(附源碼)
這篇文章主要介紹了如何簡單實(shí)現(xiàn)Android學(xué)生管理系統(tǒng),特別適合計(jì)算機(jī)專業(yè)的即將畢業(yè)的同學(xué)學(xué)習(xí)借鑒制作學(xué)生管理系統(tǒng),感興趣的小伙伴們可以參考一下2015-12-12
調(diào)用startService會(huì)拋出IllegalStateException異常解決
這篇文章主要為大家介紹了調(diào)用startService會(huì)拋出IllegalStateException異常解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Android實(shí)現(xiàn)將已發(fā)送的短信寫入短信數(shù)據(jù)庫的方法
這篇文章主要介紹了Android實(shí)現(xiàn)將已發(fā)送的短信寫入短信數(shù)據(jù)庫的方法,是Android手機(jī)開發(fā)常見的技巧,需要的朋友可以參考下2014-09-09
Android編程實(shí)現(xiàn)根據(jù)經(jīng)緯度查詢地址并對獲取的json數(shù)據(jù)進(jìn)行解析的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)根據(jù)經(jīng)緯度查詢地址并對獲取的json數(shù)據(jù)進(jìn)行解析的方法,結(jié)合實(shí)例形式分析了Android的經(jīng)緯度地址解析與json格式數(shù)據(jù)操作相關(guān)技巧,需要的朋友可以參考下2017-02-02
Android 出現(xiàn)“Can''t bind to local 8602 for debugger”錯(cuò)誤的解決方法
這篇文章主要介紹了Android 出現(xiàn)“Can't bind to local 8602 for debugger”錯(cuò)誤的解決方法的相關(guān)資料,需要的朋友可以參考下2017-03-03
cocos2d-2.0-x-2.0.3 交叉編譯到android報(bào)錯(cuò)解決
我用的是cocos2d-2.0-x-2.0.3 之前弄了一天也沒成功 今天來了下載了最新的ndk8 更新了sdk 又重新是了一遍 居然成功了,不知道是工具的版本問題還是哪一步出錯(cuò)誤了,在這里詳細(xì)的整理一下,感興趣的朋友可以了解下2013-01-01

