XmlPullParser 解析xml文件

 1     public static List<Person> getPersons(InputStream xml) throws Exception{
 2         List<Person> persons = null;
 3         Person person = null;
 4         XmlPullParser pullParser = Xml.newPullParser();
 5         pullParser.setInput(xml, "UTF-8");//为Pull解析器设置要解析的XML数据
 6         int event = pullParser.getEventType();
 7         while(event != XmlPullParser.END_DOCUMENT){
 8             switch (event) {
 9             case XmlPullParser.START_DOCUMENT:
10                 persons = new ArrayList<Person>();
11                 break;
12
13             case XmlPullParser.START_TAG:
14                 if("person".equals(pullParser.getName())){
15                     int id = new Integer(pullParser.getAttributeValue(0));
16                     person = new Person();
17                     person.setId(id);
18                 }
19                 if("name".equals(pullParser.getName())){
20                     String name = pullParser.nextText();
21                     person.setName(name);
22                 }
23                 if("age".equals(pullParser.getName())){
24                     int age = new Integer(pullParser.nextText());
25                     person.setAge(age);
26                 }
27                 break;
28
29             case XmlPullParser.END_TAG:
30                 if("person".equals(pullParser.getName())){
31                     persons.add(person);
32                     person = null;
33                 }
34                 break;
35             }
36             event = pullParser.next();
37         }
38         return persons;
39     }
时间: 2024-11-03 05:33:31

XmlPullParser 解析xml文件的相关文章

Android开发学习---使用XmlPullParser解析xml文件

Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将主要介绍pull解析器解析xml文件,环境为ubuntu 12.04+ intelij 13.1 + android sdk 2.1 一.创建一个XML项目,步骤如下: 二.解析一个xml文件: assets/person.xml <?xml version="1.0" encodi

android使用XmlPullParser来解析XML文件

解析以下的一个XML: <?xml version="1.0" encoding="utf-8" ?> <rss><sid>77f265bb46de068e78f35afbadec62af</sid><count>3</count><control>0</control> <mblog><uid>1195224593</uid><

使用XML序列化器生成XML文件和利用pull解析XML文件

首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message> <sms> <body> 陈驰0 </body> <date> 1462162910995 </date> <address> 1380 </address> <type> 1 </type> &

解析xml文件的几个步骤

1.生成xml文件的解析器 XmlPullParser parser = Xml.newPullParser(); 2.设置解析器读取流对象的编码格式 parser.setInput(is, "utf-8"); 3.设置解析xml文件之后要存储的位置 List<WeatherInfo> weatherInfo = null; WeatherInfo info = null; 4.定义解析器解析到的事件类型 int type = parser.getEventType();

利用Pull生成和解析xml文件

解析xml的方式有很多,可以用dom,sax解析,但是在android平台上最常用是Pull解析,下面是简单的示例 <?xmlversion="1.0" encoding="UTF-8"?> <persons> <person id="18"> <name>allen</name> <age>36</age> </person> <person

解析xml文件作为下拉列表的数据源

需求:有一个xml文件,包含省市县的信息(id,name,下属分划) 将xml文件信息解析到安卓下拉列表(spinner),三个下拉列表,第一个显示省名,第二个显示市名,第三个显示县名 要求选择第一个下拉列表的一个省名,相应市县信息跟随变化 方案分析: 1.因为要解析xml文件的全部信息,可以选择pull解析或者sax解析 2.有省.市.县等信息 则要有三个对应的实体类 xml文件 部分内容 1 - <p p_id="01"> 2 <pn>北京</pn&g

InputStream流解析 XML文件

1 // 根据InputStream流解析 XML文件 2 private void getNewsFromStream(InputStream is){ 3 // 1.创建XML pull 解析器 谷歌内置解析器 4 XmlPullParser xp = Xml.newPullParser(); 5 try { 6 //2.指定解析器要解析的文件 和解析文件所用到的编码方式 7 xp.setInput(is,"utf-8"); 8 //3.开始解析文件(在解析之前需要有 JavaBe

pull 解析XML 文件

pull解析的特点 事件驱动机制来解析 当解析到一个节点,会自动停止,不会往下继续解析,好处 :很好能够控制流程 android默认采用pull解析 pull解析的事件类型 start_document :开始文档事件 ,事件类型 end_docuent :结束文档事件 start_tag: 开始标记 end_tag :结束标记 private List<Map<String, String>> getXmlFormPull(InputStream is) throws Excep

Java之Pull方式生成xml文件和解析xml文件

Pull XML解析器早已经被google集成到android sdk当中,它是google官方推荐的解析器. 如果我们要在Java桌面.J2ME等当中使用Pull方式生成xml文件和解析xml文件,需要用到kxml2: KXML解析器是基于普通XML PULL解析器的一个小巧的解析器,官网是http://kxml.org/ 普通XML PULL解析器的官网是http://xmlpull.org/ 实验开始: 在Eclipse中新建一个java项目,其中新建一个libs文件夹,拷贝从网上下载的k