全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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数据
  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;
 }
 
 /**
  * 保存数据到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  # XmlPullParser  # 解析  # Xml  # 文档  # Android编程解析XML文件的方法详解【基于XmlPullParser】  # Android编程使用pull方式解析xml格式文件的方法详解  # 详解Android之解析XML文件三种方式(DOM  # PULL  # SAX)  # Android解析XML(PULL)展示到ListView  # Android平台基于Pull方式对XML文件解析与写入方法详解  # 实例解析Android中使用Pull解析器解析XML的方法  # android4.0混淆XmlPullParser报错原因分析解决  # Android pull解析xml的实现方法  # 希望能  # 谢谢大家  # 李四  # util  # OutputStream  # org  # List  # ArrayList  # InputStream  # java  # io  # import  # public 


相关文章: 长沙企业网站制作哪家好,长沙水业集团官方网站?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  动图在线制作网站有哪些,滑动动图图集怎么做?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  javascript中对象的定义、使用以及对象和原型链操作小结  常州企业建站如何选择最佳模板?  如何高效利用亚马逊云主机搭建企业网站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  如何做静态网页,sublimetext3.0制作静态网页?  Python lxml的etree和ElementTree有什么区别  高端网站建设与定制开发一站式解决方案 中企动力  如何彻底卸载建站之星软件?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  香港服务器网站推广:SEO优化与外贸独立站搭建策略  音响网站制作视频教程,隆霸音响官方网站?  如何快速配置高效服务器建站软件?  如何通过PHP快速构建高效问答网站功能?  ,有什么在线背英语单词效率比较高的网站?  ,制作一个手机app网站要多少钱?  建站之星展会模版如何一键下载生成?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  怀化网站制作公司,怀化新生儿上户网上办理流程?  建站之星Pro快速搭建教程:模板选择与功能配置指南  网站制作壁纸教程视频,电脑壁纸网站?  XML的“混合内容”是什么 怎么用DTD或XSD定义  建站ABC备案流程中有哪些关键注意事项?  如何挑选高效建站主机与优质域名?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  如何在IIS中新建站点并解决端口绑定冲突?  如何快速上传自定义模板至建站之星?  如何通过主机屋免费建站教程十分钟搭建网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  建站主机选择指南:服务器配置与SEO优化实战技巧  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  如何配置IIS站点权限与局域网访问?  如何实现建站之星域名转发设置?  婚礼视频制作网站,学习*后期制作的网站有哪些?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  制作网站公司那家好,网络公司是做什么的?  如何通过cPanel快速搭建网站?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  制作旅游网站html,怎样注册旅游网站?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  建站之星如何快速解决建站难题?  建站主机选购指南:核心配置优化与品牌推荐方案 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。