javaXML文件解析(二)pull解析
来源:互联网 发布:淘宝性价比高的童装店 编辑:程序博客网 时间:2024/05/22 13:20
pull解析与xml文件解析,都是以事件驱动的方式驱动的,通常使用switch语句,根据不同的事件类型,匹配不同的处理方式,pull解析中提供了五种事件类型:START_DOCMENT ,START_TAG, TEXT,END_TAG,END_DOCMENT,读取到xml声明时返回START_DOCMENT,结束返回END_DOCMENT,开始元素返回START_TAG ,文本返回TEXT;pull解析时返回的事件类型都是数字,需要我们自己根据返回的事件类型进行相应的操作
几个重要的方法
paser.nextText()–>返回标签中对应的文本
parser.next解析下一个标签 得到事件类型进行下一次循环
public class pullXMlParse { public static List<Person> getXml(InputStream inputStream,String encoding) throws Exception{ List<Person> list = null; Person person = null; //得到xml文件解析工厂 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); //得到XML文件解析类 获取xml文件解析类的引用 通过parser.getName方法获得该节点的名称 XmlPullParser parser = factory.newPullParser(); //设置parser解析的数据来源,已经编码格式,与xml文件中编码格式一样 parser.setInput(inputStream, encoding); //获得事件解析类型,事件类型以整形标识 int eventType = parser.getEventType(); while(eventType!=XmlPullParser.END_DOCUMENT){ switch(eventType){ case XmlPullParser.START_DOCUMENT: list = new ArrayList<Person>(); break; case XmlPullParser.START_TAG: if("person".equals(parser.getName())){ person = new Person(); String s = parser.getAttributeValue(0); int id = Integer.parseInt(s); person.setId(id); } else if("name".equals(parser.getName())){ String name = parser.nextText(); person.setName(name); } else if("age".equals(parser.getName())){ String s = parser.nextText(); int age = Integer.parseInt(s); person.setAge(age); } break; case XmlPullParser.END_TAG: if("person".equals(parser.getName())){ list.add(person); person = null; } break; } eventType = parser.next(); } return list; }}
xml文件的获取可以使用javaXML文件解析(一)HttpUtils类,Person类也可以使用javaXML文件解析(一)中的Person类
0 0
- javaXML文件解析(二)pull解析
- javaXML文件解析(一) SAX解析
- javaXML文件解析(三)DOM解析
- Android PULL解析XML文件(二)
- Xml解析(pull解析)二
- 常用的JavaXML解析技术
- Pull解析XML文件
- Pull解析xml文件
- pull解析xml文件
- Pull解析xml文件
- pull解析xml文件
- pull解析xml文件
- pull解析xml文件
- Pull解析xml文件
- Pull解析XML文件
- pull解析xml文件
- pull解析xml文件
- Pull解析Xml文件
- 纯CSS3绘制的小猫笑脸动画
- ReactNative错误归纳(持续更新)
- QtCharts Legend 点击选择demo
- bzoj 3626: [LNOI2014]LCA 树链剖分
- Struts2(1)---------------struts2概述
- javaXML文件解析(二)pull解析
- 如何参与KVM/QEMU社区开发
- 用PyQt做点实用工具
- 输入两个正整数m和n,求其最大公约数和最小公倍数
- web页面
- C语言隐式类型转换
- 给大家推荐一款绿色软件,感觉很不错
- windows下的托盘编程(Shell_NotifyIcon)
- XManager连接RHEL7.2问题的解决办法