亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

Android實(shí)現(xiàn)向本地寫入一個(gè)XML文件和解析XML文件

瀏覽:74日期:2022-09-25 17:40:26

在網(wǎng)絡(luò)存儲(chǔ)過程中有很多時(shí)候會(huì)遇到XML文件解析和使用XML保存一些信息,解析XML文件用的比較多的方法是pull解析和SAX解析,但是我一般只用pull解析,下面就向cd卡寫入一個(gè)XML文件,然后再使用pull解析的方法對(duì)文件進(jìn)行解析。

一、向SD卡中寫入一個(gè)XML文件:

/** * 向SD卡寫入一個(gè)XML文件 * * @param v */public void savexml(View v) { try {File file = new File(Environment.getExternalStorageDirectory(),'persons.xml');FileOutputStream fos = new FileOutputStream(file);// 獲得一個(gè)序列化工具XmlSerializer serializer = Xml.newSerializer();serializer.setOutput(fos, 'utf-8');// 設(shè)置文件頭serializer.startDocument('utf-8', true);serializer.startTag(null, 'persons');for (int i = 0; i < 10; i++) {serializer.startTag(null, 'person');serializer.attribute(null, 'id', String.valueOf(i));// 寫姓名serializer.startTag(null, 'name');serializer.text('張三' + i);serializer.endTag(null, 'name');// 寫性別serializer.startTag(null, 'gender');serializer.text('男' + i);serializer.endTag(null, 'gender');// 寫年齡serializer.startTag(null, 'age');serializer.text('1' + i);serializer.endTag(null, 'age'); serializer.endTag(null, 'person');}serializer.endTag(null, 'persons');serializer.endDocument();fos.close();Toast.makeText(MainActivity.this, '寫入成功', 0).show();} catch (Exception e) {e.printStackTrace();Toast.makeText(MainActivity.this, '寫入失敗', 0).show();} }

1、設(shè)置XML文件保存的地址,2、獲得一個(gè)序列化工具,3、寫XML文件的頭,4、循環(huán)寫入信息。

最后得到的XML文件

Android實(shí)現(xiàn)向本地寫入一個(gè)XML文件和解析XML文件

二、解析本地XML文件

/** * 讀取SD卡中的XML文件,使用pull解析 * * @param v */public void readxml(View v) { try {File path = new File(Environment.getExternalStorageDirectory(),'persons.xml');FileInputStream fis = new FileInputStream(path); // 獲得pull解析器對(duì)象XmlPullParser parser = Xml.newPullParser();// 指定解析的文件和編碼格式parser.setInput(fis, 'utf-8'); int eventType = parser.getEventType(); // 獲得事件類型 String id = null;String name = null;String gender = null;String age = null;while (eventType != XmlPullParser.END_DOCUMENT) {String tagName = parser.getName(); // 獲得當(dāng)前節(jié)點(diǎn)的名稱 switch (eventType) {case XmlPullParser.START_TAG: // 當(dāng)前等于開始節(jié)點(diǎn) <person>if ('persons'.equals(tagName)) { // <persons>} else if ('person'.equals(tagName)) { // <person id='1'>id = parser.getAttributeValue(null, 'id');} else if ('name'.equals(tagName)) { // <name>name = parser.nextText();}else if ('gender'.equals(tagName)) { // <age>gender = parser.nextText();} else if ('age'.equals(tagName)) { // <age>age = parser.nextText();}break;case XmlPullParser.END_TAG: // </persons>if ('person'.equals(tagName)) {Log.i(TAG, 'id---' + id);Log.i(TAG, 'name---' + name);Log.i(TAG, 'gender---' + gender);Log.i(TAG, 'age---' + age);}break;default:break;}eventType = parser.next(); // 獲得下一個(gè)事件類型}} catch (Exception e) {e.printStackTrace();}finally{}

1、獲取要解析XML文件的地址,2、獲得pull解析工具,3、根據(jù)標(biāo)簽的不同判斷并保存信息。

Android實(shí)現(xiàn)向本地寫入一個(gè)XML文件和解析XML文件

在解析過程中遇到一個(gè)問題,就是在解析完了之后,調(diào)用fis.close()函數(shù)時(shí),會(huì)報(bào)bad file number的錯(cuò)誤,檢查了很久才發(fā)現(xiàn)是這句話的問題。

補(bǔ)充知識(shí):Android 讀取raw下的xml配置文件

1、獲取數(shù)據(jù)流

// 讀取配置文件InputStream in = context.getResources().openRawResource(R.raw.cfg);

2、解析xml文件

public class XmlParser<T>{ public T xmlParser(InputStream xml) throws Exception { XmlPullParser pullParse = Xml.newPullParser(); pullParse.setInput(xml, 'UTF-8'); int event = pullParse.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) {case XmlPullParser.START_DOCUMENT: //文件開頭 break;case XmlPullParser.START_TAG: //標(biāo)簽開始標(biāo)志 //pullParse.getName() 獲取標(biāo)簽名 //pullParse.getAttributeValue(0)獲取標(biāo)簽的參數(shù) //pullParse.nextText() 獲取標(biāo)簽內(nèi)的值 break;case XmlPullParser.END_TAG: //標(biāo)簽結(jié)束標(biāo)志 break; } event = pullParse.next();//進(jìn)行下一個(gè)標(biāo)簽的解析 } return T; }}

以上這篇Android實(shí)現(xiàn)向本地寫入一個(gè)XML文件和解析XML文件就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 精品国产成人高清在线 | 91在线免费公开视频 | 成人a级| 国产日韩在线看 | 国产日韩欧美在线观看播放 | 国产一区精品 | 日韩欧美毛片免费观看视频 | 免费的毛片 | 在线免费成人 | 亚洲高清免费观看 | 成人手机在线 | 久草在线免费资源 | 精品国产综合区久久久久久 | 国产精品视频自拍 | 亚洲欧洲日本天天堂在线观看 | 日本农村寡妇一级毛片 | 欧美精品久久久久久久久大尺度 | 韩国巨胸女三级视频网 | 伊人色综合久久天天人手人停 | 免费看a级肉片 | 国产一区二区三区日韩 | 国产女人在线观看 | 精品一区二区三区四区在线 | 亚洲欧美综合视频 | 91精品一区二区三区在线 | 欧美日韩免费一区二区三区 | 美女叉开腿让男人捅 | 欧美综合在线观看 | 香港经典a毛片免费观看爽爽影院 | 三级色网| 国产免费视屏 | 国产愉拍精品手机 | 亚洲高清免费观看 | 欧美成人免费观看国产 | 亚洲人视频在线观看 | 欧美激情欧美狂野欧美精品免费 | 最近手机中文在线视频 | 国产萌白酱在线一区二区 | 国产精品综合一区二区 | 日本久久综合网 | 99国内精品久久久久久久 |