Pull 解析XML文件
2016-09-02 23:36
579 查看
Pull解析:
优于SAX解析的Pull解析.不像SAX一解析就停不下来.Pull可以随叫随停,容易控制,因而受到重用.在Android中有很多文件是以XML的格式.是以Pull解析的方式进行解析的.Pull解析器的运行方式与 SAX 解析器相似.但是比SAX解析要简单.不管是代码上还是理解上都更容易接受.和SAX解析对比起来更容易掌握
并且需要得到值得话可以直接调用nextText()方法.不用麻烦的各种转换了
话不多说看代码
package com.hutu; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import org.junit.Test; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; iport com.hutu.bean.Phone; public class PullParse { @Test public void pullParse() throws Exception{ ArrayList<Phone> al= null; Phone phone = null; //获取XmlPullParserFactory工厂 XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance(); //通过工厂得到xml的解析器XmlPullParser XmlPullParser parser = parserFactory.newPullParser(); //给解析器设置一个输入源. //输入流绑定smartisan.xml.第二个参数为编码格式,使用UTF-8 parser.setInput(new FileInputStream(new File("smartisan.xml")), "UTF-8"); //获取当前事件类型 int eventType = parser.getEventType(); boolean flag = true; //使用while循环,如果是读到文件末尾就结束 while (eventType != XmlPullParser.END_DOCUMENT && flag ) { // switch (eventType) { case XmlPullParser.START_TAG: //parser.getName 获取当前事件对应的元素名字 if ("锤子手机".equals(parser.getName())) { //读到锤子手机的时候需要创建一个集合 al = new ArrayList<Phone>(); }else if ("机型".equals(parser.getName())) { //创建一个对象用来存储.把后面的元素添加到对象中 phone = new Phone(); }else if ("品牌".equals(parser.getName())) { //parser.nextText()获取当前节点的下一个文本内容 phone.setBrand(parser.nextText()); }else if ("价格".equals(parser.getName())) { phone.setPrice(parser.nextText()); }else if ("厂商".equals(parser.getName())) { phone.setDesigner(parser.nextText()); } break; case XmlPullParser.END_TAG: //结束标签 if ("机型".equals(parser.getName())) { //此时应该添加到集合中去 al.add(phone); flag = false; } break; } /* * 调用parser.next()方法解析下一个元素,解析之后要把赋值给eventType.这样在满足条件就会退出while循环. * 否则evenType不更新的话就是系循环了 */ eventType = parser.next(); } //遍历集合 for (Phone phone2 : al) { System.out.println(phone2); } } }
相关文章推荐
- android解析xml文件的方式(其三)PULL
- Android开发进阶(六)--原始XML文件的使用以及PULL解析小例
- Android-使用pull解析xml文件
- Android XML文件解析之pull解析器
- Android PULL解析XML文件(二)
- XmlPullParser解析xml文件(还原短信)
- Pull解析xml文件
- 安卓解析XML文件系列2:使用PULL方式
- 安卓系列三(使用pull 方式解析xml文件)
- Andoid 获取网络资源 PullParser(Pull解析xml文件)
- Android中xml文件解析 SAX方式 与 PULL方式
- Android 解析XML文件 (SAX与PULL)
- XML文件解析之PULL模式解析
- Android程序解析XML文件的方法及使用PULL解析XML案例
- Android学习笔记43-XML文件解析(Pull方式)
- 利用Dom,Sax,Pull三种方式解析xml文件
- 通过Pull方式解析xml文件
- android解析xml文件的方式之PULL解析
- Android的XML文件解析之PULL解析
- android 的pull 解析器 解析 xml文件(转载)