android之PULL解析xml文档
在PULLParser.java中
public class PULLParser
{
public List<Person> getPersons(InputStream inputStream) throws Throwable
{
List<Person> persons = null;
Person person = null;//初始化一下
XmlPullParser pullParser = Xml.newPullParser();
pullParser.setInput(inputStream, "UTF-8");
//产生第一个事件
int eventType = pullParser.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT)
{
switch (eventType)
{
case XmlPullParser.START_DOCUMENT:
persons = new ArrayList<Person>();
break;
case XmlPullParser.START_TAG:
//获取当前指向的元素名称
String name=pullParser.getName();
if(name.equals("person"))
{
person = new Person();
person.setId(new Integer(pullParser.getAttributeValue(0)));
}
if(person != null)
{
if(name.equals("name"))
{
person.setName(pullParser.nextText());
}
if(name.equals("age"))
{
person.setAge(new Short(pullParser.nextText()));
}
}
break;
case XmlPullParser.END_TAG:
if(pullParser.getName().equals("person"))
{
persons.add(person);
person=null;
}
default:
break;
}
eventType=pullParser.next();
}
return persons;
}
}
在单元测试中
public void testPULL() throws Throwable
{
PULLParser pullParser = new PULLParser();
InputStream inputStream = getClass().getClassLoader()
.getResourceAsStream("myxml.xml");
List<Person> persons = pullParser.getPersons(inputStream);
for (Person person : persons)
{
Log.i(TAG, person.toString());
}
}
更多相关文章
- 安卓(Android)九宫格布局介绍
- android 获取音乐文件的内置专辑图片
- Android中手机文件储存路径
- android -------- MVP+DataBinding 的使用
- Android使用Fragment嵌套Fragment的模式实现界面滑动
- Watchdog 工作机制解析
- 【Android单元测试系列】真正的异步单元测试
- android之横向滚动图
- 实现三星S3蒲公英水波纹效果(三)——Activity水波纹实现篇