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

Android XmlPullParser 方式解析 Xml 文檔

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

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解釋器設(shè)置要解析的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();
 }
}

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

和龙市| 宁都县| 青河县| 恩平市| 绵竹市| 徐闻县| 满洲里市| 静安区| 赤城县| 淳化县| 衡东县| 石狮市| 察隅县| 海淀区| 武城县| 六安市| 合江县| 册亨县| 苏州市| 增城市| 贡嘎县| 塘沽区| 若羌县| 来宾市| 乌兰浩特市| 太谷县| 清流县| 宁安市| 阜南县| 全椒县| 三门县| 额济纳旗| 石狮市| 微山县| 临朐县| 汶上县| 汾西县| 繁峙县| 伊宁市| 威海市| 维西|