Android中使用XmlPullParse解析xml文件
来源:互联网 发布:vpn用数据还是wifi 编辑:程序博客网 时间:2024/05/21 01:48
解析xml文件有很多方法,有SAX,还有DOM,在android中,android自带了XmlPullParse相关包,
在android中要解析xml文件,推荐使用XmlPullParse解析。
下面是一个使用的相关案例:
PersonService:
package com.example.service;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import android.content.Intent;import android.util.Xml;import com.example.domain.Person;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");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())){person = new Person();//这是获得字段的属性int id = new Integer(pullParser.getAttributeValue(0));person.setId(id);}if("name".equals(pullParser.getName())){//获得其中的内容String name = pullParser.nextText();person.setName(name);}if("age".equals(pullParser.getName())){int age = new Integer(pullParser.nextText());person.setAge(age);}break;case XmlPullParser.END_TAG:if("person".equals(pullParser.getName())){persons.add(person);person = null;}break;default:break;}event = pullParser.next();}return persons;}}
将xml文件放在类路径目录下,编写测试案例:
package cn.example.test;import java.io.InputStream;import java.util.List;import android.test.AndroidTestCase;import android.util.Log;import com.example.domain.Person;import com.example.service.PersonService;public class PersonServiceTest extends AndroidTestCase {public void testPersonXml() throws Exception{InputStream xml = this.getClass().getClassLoader().getResourceAsStream("person.xml");List<Person> persons = PersonService.getPersons(xml);for(Person person:persons){Log.d("TAG", person.toString());}}}xml文件:
<?xml version="1.0" encoding="utf-8"?><Persons> <person id="1"> <name>zhangsan</name> <age>12</age> </person> <person id="2"> <name>lisi</name> <age>22</age> </person></Persons>
测试结果:
12-26 07:15:45.022: D/TAG(10150): Person [id=1, name=zhangsan, age=12]
12-26 07:15:45.022: D/TAG(10150): Person [id=2, name=lisi, age=22]
0 0
- Android中使用XmlPullParse解析xml文件
- android中XmlPullParse解析xml的用法
- XmlPullParse解析XML
- Android利用XmlPullParse对XML进行解析读取(一)
- android利用XmlPullParse对XML进行解析读取(1) + (2) 总结
- android中使用SAX解析xml文件
- Android 中使用Pull解析XML文件
- Android 中使用Pull解析XML文件
- Android中使用pull解析xml文件
- Android中使用pull解析xml文件
- Android中使用Pull解析器解析XML文件简介
- android中解析XML文件
- Android中XML文件解析
- 在android中使用Pull解析器生成xml文件
- Android中使用SAX方式解析XML文件
- Android中使用PULL方式解析XML文件
- Android中使用SAX对XMl文件进行解析
- Android中使用PULL方式解析XML文件
- bitmap为空,但是转化到drawable却不为空
- linux 读写磁盘扇区
- Nexus私有仓库使用记
- 截至11月底 成都空港国际快件中心处理快件超20万票
- Java基础----Random
- Android中使用XmlPullParse解析xml文件
- 在phpstorm中配置symfony2项目
- [LeetCode] Surrounded Regions
- 学习计划:技术体系
- fsl Camera 调试第一篇 CameraModule.cpp
- Linux下Tomcat的启动、关闭、杀死进程
- go语言的IDE实现自动补全的功能
- IOS学习 非ARC工程转ARC工程以及其内部对应(比较详细的记录的主要问题)
- Android OpenGL ES 开发教程 从入门到精通