日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android向本地写入一个XML文件和解析XML文件

發布時間:2024/10/8 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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、根據標簽的不同判斷并保存信息。


在解析過程中遇到一個問題,就是在解析完了之后,調用fis.close()函數時,會報bad file number的錯誤,檢查了很久才發現是這句話的問題。

總結

以上是生活随笔為你收集整理的Android向本地写入一个XML文件和解析XML文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。