Android向本地写入一个XML文件和解析XML文件
生活随笔
收集整理的這篇文章主要介紹了
Android向本地写入一个XML文件和解析XML文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在網絡存儲過程中有很多時候會遇到XML文件解析和使用XML保存一些信息,解析XML文件用的比較多的方法是pull解析和SAX解析,但是我一般只用pull解析,下面就向cd卡寫入一個XML文件,然后再使用pull解析的方法對文件進行解析。
一、向SD卡中寫入一個XML文件:
/*** 向SD卡寫入一個XML文件* * @param v*/public void savexml(View v) {try {File file = new File(Environment.getExternalStorageDirectory(),"persons.xml");FileOutputStream fos = new FileOutputStream(file);// 獲得一個序列化工具XmlSerializer serializer = Xml.newSerializer();serializer.setOutput(fos, "utf-8");// 設置文件頭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、設置XML文件保存的地址,2、獲得一個序列化工具,3、寫XML文件的頭,4、循環寫入信息。最后得到的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解析器對象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(); // 獲得當前節點的名稱switch (eventType) {case XmlPullParser.START_TAG: // 當前等于開始節點 <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(); // 獲得下一個事件類型}} catch (Exception e) {e.printStackTrace();}finally{} 1、獲取要解析XML文件的地址,2、獲得pull解析工具,3、根據標簽的不同判斷并保存信息。
總結
以上是生活随笔為你收集整理的Android向本地写入一个XML文件和解析XML文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u大师怎么装机 如何装机:U大师教你
- 下一篇: android sina oauth2.