Pull 解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如: 开始元素和结束元素事件,使用 parser.next() 可以进入下一个元素并触发相应事件。跟 SAX 不同的 是, Pull 解析器产生的事件是一个数字,而非方法,因此可以使用一个 switch 对感兴趣的事件 进行处理。当元素开始解析时,调用 parser.nextText() 方法可以获取下一个 Text 类型节点的值。
例如解析:person.xml放到src目录下可以使用类装载器载入文件
首先根据xml文件的内容写一个person javabean 和xmlserver 的业务bean
以下是xmlserveryewbean 的解释:
因为xml的person节点有很多个所以方法的返回类型是一个集合(List<Person>)
方法:public List<Person> getPersons(InputStream xml) throws Exception
1,首先需要一个pull解析器:android自带的方法获取一个解析器 XmlPullParser parser=Xml.newPullParser();
2,以流的形式将xml文件载入 parser.setInput(xml,"utf-8");
3,开始解析
<?xml version="1.0" encoding="UTF-8"?>是文档开始
所以:int event=parser.getEvenType();
根据判断event的结果 而作出不同的动作 看主要代码:
public static List<Person> getPersons(InputStream xml)throws Exception{
List<Person> persons=null;
Person person=null;
XmlPullParser parser=Xml.newPullParser();
parser.setInput(xml, "UTF-8");
int event=parser.getEventType();
while(event!= XmlPullParser.END_DOCUMENT){
switch(event){
case XmlPullParser.START_DOCUMENT:
persons=new ArrayList<Person>();
break;
case XmlPullParser.START_TAG:
if("person".equals(parser.getName())){
Integer personId=new Integer(parser.getAttributeValue(0));
person=new Person();
person.setId(personId);
}else if("name".equals(parser.getName())){
String personName=parser.nextText();
person.setName(personName);
}else if("age".equals(parser.getName()))
person.setAge(new Short(parser.nextText()));
break;
case XmlPullParser.END_TAG:
if("person".equals(parser.getName())){
persons.add(person);
person=null;
}
break;
}
event=parser.next();
}
return persons;
}
解析一下:XmlPullParser.START_DOCUMENT表示开始文档事件
XmlPullParser.START_TAG: 开始标签
XmlPullParser.END_TAG:结束标签
parser.getName()获取节点的名称
parser.nextText();获取下一个text类型的节点
parser.getAttributeValue(0));获取属性值
event=parser.next();继续下一个元素
分享到:
相关推荐
Android的Pull解析,需要的可以下载
android xml pull解析示例,自己mark下,备忘
在Android平台上基于Pull方式对XML文件进行解析
android pull解析 创建xmlw文件,完整工程项目,可直接运行
android pull 解析 源码 android2.2 实例 简单易懂 ,可以运行的 XmlPullParser parser = Xml.newPullParser(); List<Person> listPerson = null; parser.setInput(inputStream, "UTF-8"); int eventType = ...
XML解析AndroidPull解析代码
Android Pull 解析 XML
实现pull方式解析xml文件,xml文件放置在assets文件夹,View绑定使用butterknife
使用android内置的pull解析器解析xml,演示了取节点名称、取节点属性值以及取节点下文本的方式,并根据节点名称通过反射取类中的变量的值
在Android中,使用SAX和PULL解析XML,本项目中以解析天气预报为例。 详情见博客:http://blog.csdn.net/yalin18/article/details/7437752
Android网络编程之Pull解析XML文件~
在android平台下使用PULL解析XML源码。
使用Android自带的XML解析器PULL解析器简单的解析xml,并将内容显示在TestView上,代码简化过。
利用android中自带的pull解析器解析和生成xml片段。
Android Pull解析xml文件.
android项目的一个pull解析的小DEMO
pull解析和生成xml文件,使用pull解析本地的xml文件,并且生成了一个不同格式的新的xml文件
Android中采用Pull解析器读取和生成xml内容案例...
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...
Android ReadXmlByPull 使用Pull解析Xml文件.rar