最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android XmlPullParser 方式解析 Xml 文檔

 更新時間:2017年06月11日 14:30:24   投稿:lqh  
這篇文章主要介紹了Android XmlPullParser 方式解析 Xml 文檔的相關資料,需要的朋友可以參考下

Android XmlPullParser 方式解析 Xml 文檔

xml 文件格式

<?xml version="1.0" encoding="UTF-8"?>
<persons>
  <person id="1">
    <name>張三</name>
    <age>22</age>
  </person>
  <person id="2">
    <name>李四</name>
    <age>20</age>
  </person>
</persons>

XmlPullParser 方式解析 xml 文件

import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;
import com.eboy.domain.Person;
import android.util.Xml;
 
public class PersonService {
 public static List<Person> getPersons(InputStream xml) throws Exception {
  List<Person> persons = null;
  Person person = null;
  XmlPullParser pullParser = Xml.newPullParser();
  pullParser.setInput(xml, "UTF-8"); // 為Pull解釋器設置要解析的XML數(shù)據(jù)
  int event = pullParser.getEventType();
 
  while (event != XmlPullParser.END_DOCUMENT) {
 
   switch (event) {
 
   case XmlPullParser.START_DOCUMENT:
    persons = new ArrayList<Person>();
    break;
   case XmlPullParser.START_TAG:
    if ("person".equals(pullParser.getName())) {
     int id = Integer.valueOf(pullParser.getAttributeValue(0));
     person = new Person();
     person.setId(id);
    }
    if ("name".equals(pullParser.getName())) {
     String name = pullParser.nextText();
     person.setName(name);
    }
    if ("age".equals(pullParser.getName())) {
     int age = Integer.valueOf(pullParser.nextText());
     person.setAge(age);
    }
    break;
 
   case XmlPullParser.END_TAG:
    if ("person".equals(pullParser.getName())) {
     persons.add(person);
     person = null;
    }
    break;
 
   }
 
   event = pullParser.next();
  }
  return persons;
 }
 
 /**
  * 保存數(shù)據(jù)到xml文件中
  * @param persons
  * @param out
  * @throws Exception
  */
 public static void save(List<Person> persons, OutputStream out) throws Exception {
  XmlSerializer serializer = Xml.newSerializer();
  serializer.setOutput(out, "UTF-8");
  serializer.startDocument("UTF-8", true);
  serializer.startTag(null, "persons");
  for (Person person : persons) {
   serializer.startTag(null, "person");
   serializer.attribute(null, "id", person.getId().toString());
   serializer.startTag(null, "name");
   serializer.text(person.getName().toString());
   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();
  out.flush();
  out.close();
 }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • Android使用GridView實現(xiàn)日歷的方法

    Android使用GridView實現(xiàn)日歷的方法

    本篇文章主要介紹了Android使用GridView實現(xiàn)日歷的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Android中監(jiān)聽Home鍵的4種方法總結

    Android中監(jiān)聽Home鍵的4種方法總結

    這篇文章主要介紹了Android中監(jiān)聽Home鍵的4種方法總結,本文講解了onSaveInstanceState方法、onUserLeaveHint方法、ACTION_CLOSE_SYSTEM_DIALOGS、framework PhoneWindowManager.java等4種方法,需要的朋友可以參考下
    2015-04-04
  • Android實現(xiàn)EditText輸入金額

    Android實現(xiàn)EditText輸入金額

    EditText是Android中一個非常實用的控件,有很多InputType,可以來達到不同的輸入效果,下面通過實例代碼給大家解析android實現(xiàn)edittext輸入金額,需要的朋友參考下吧
    2016-12-12
  • 詳解flutter之網(wǎng)絡請求dio,請求,攔截器簡單示例

    詳解flutter之網(wǎng)絡請求dio,請求,攔截器簡單示例

    這篇文章主要介紹了詳解flutter之網(wǎng)絡請求dio,請求,攔截器簡單示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • Android中findViewById獲取控件返回為空問題怎么解決

    Android中findViewById獲取控件返回為空問題怎么解決

    這篇文章主要介紹了Android中findViewById獲取控件返回為空問題怎么解決的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Android使用Apktool反編譯APK并重新簽名的詳細教程

    Android使用Apktool反編譯APK并重新簽名的詳細教程

    在?Android?開發(fā)和安全研究中,反編譯?APK?文件并重新簽名是一個常見的操作,通過反編譯?APK,我們可以查看應用的資源文件、代碼結構,甚至進行一些定制化修改,本文將詳細介紹如何使用?Apktool?工具來反編譯?APK?并重新簽名,需要的朋友可以參考下
    2025-02-02
  • android surfaceView實現(xiàn)播放視頻功能

    android surfaceView實現(xiàn)播放視頻功能

    這篇文章主要為大家詳細介紹了android surfaceView實現(xiàn)播放視頻功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Kotlin數(shù)據(jù)存儲方式全面總結講解

    Kotlin數(shù)據(jù)存儲方式全面總結講解

    在開發(fā)過程中,數(shù)據(jù)存取是較為頻繁的,今天我們來了解下android幾種常見的數(shù)據(jù)存取方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-12-12
  • Android性能優(yōu)化之Bitmap圖片優(yōu)化詳解

    Android性能優(yōu)化之Bitmap圖片優(yōu)化詳解

    在Android項目的imageview中使用大圖bitmap時會占據(jù)很大的內(nèi)存,而且在很多時候我們并不需要顯示原圖那么大的圖片, 所以我們需要對圖片進行優(yōu)化,這篇文章主要介紹了Android性能優(yōu)化之Bitmap圖片優(yōu)化的相關資料,需要的朋友們下面來一起看看吧。
    2017-04-04
  • Android View 事件分發(fā)機制詳解

    Android View 事件分發(fā)機制詳解

    本文主要介紹Android View 事件分發(fā)機制,這里整理了相關資料并詳細介紹了view分發(fā)機制的知識及簡單示例代碼,有興趣的小伙伴可以參考下
    2016-08-08

最新評論

韶关市| 嫩江县| 北安市| 大埔区| 马鞍山市| 彭阳县| 鱼台县| 云和县| 墨竹工卡县| 轮台县| 凭祥市| 临潭县| 宣威市| 哈巴河县| 土默特右旗| 腾冲县| 宜州市| 蒙城县| 秦皇岛市| 奇台县| 开封县| 宝山区| 五寨县| 汉沽区| 竹北市| 八宿县| 随州市| 永修县| 武强县| 内黄县| 滨海县| 廊坊市| 泌阳县| 弥渡县| 修武县| 苏尼特左旗| 资溪县| 福州市| 谷城县| 滦平县| 连云港市|