java中采用Pull解析器对XML文件进行解析
一、基本介绍
Android中极力推荐xmlpull方式解析xml。
xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar。
jar包下载网址
https://www.xmlpull.org/
https://kxml.sourceforge.net/
二、例子
读取到xml的声明返回数字0 START_DOCUMENT;
读取到xml的结束返回数字1 END_DOCUMENT ;
读取到xml的开始标签返回数字2 START_TAG
读取到xml的结束标签返回数字3 END_TAG
读取到xml的文本返回数字4 TEXT
<?xml version="1.0" encoding="UTF-8"?> <people> <person > <name>XY1</name> <age>22</age> </person> <person > <name>XY2</name> <age>22</age> </person> </people>
public class PersonService { /** * 从XML文件中读取数据 * * @param xml XML文件输入流 */ public List<Person> getPeople(InputStream xml) throws Exception { List<Person> lst = null; Person person = null; // 获得pull解析器工厂 XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance(); //获取XmlPullParser的实例 XmlPullParser pullParser = pullParserFactory.newPullParser(); // 设置需要解析的XML数据 pullParser.setInput(xml, "UTF-8"); // 取得事件 int event = pullParser.getEventType(); // 若为解析到末尾 while (event != XmlPullParser.END_DOCUMENT) // 文档结束 { // 节点名称 String nodeName = pullParser.getName(); switch (event) { case XmlPullParser.START_DOCUMENT: // 文档开始 lst = new ArrayList<Person>(); break; case XmlPullParser.START_TAG: // 标签开始 if ("person".equals(nodeName)) { String id = pullParser.getAttributeValue(0); person = new Person(); person.setId(id); } if ("name".equals(nodeName)) { String name = pullParser.nextText(); person.setName(name); } if ("age".equals(nodeName)) { int age = Integer.valueOf(pullParser.nextText()); person.setAge(age); } break; case XmlPullParser.END_TAG: // 标签结束 if ("person".equals(nodeName)) { lst.add(person); person = null; } break; } event = pullParser.next(); // 下一个标签 } return lst; } }
最后更新:2017-04-03 20:19:47
上一篇:
Android开发11——手机横屏和竖屏与android:configChanges
下一篇:
C#委托基础7——匿名方法
一文看懂LoRa与NB-IoT在物联网应用的优缺点
获得eclipse发布的web项目WEB-INFO下的路径(最淳朴的方法)
深入了解Cookie(1)------selenium2进行Cookie操作的前奏
Java基础知识——SDK、JDK、JRE、JVM、JDT、CDT等之间的区别与联系
《数据分析实战:基于EXCEL和SPSS系列工具的实践》一1.4 数据分析的流程
物联网应用正面临三点挑战
java线程学习5——线程同步之同步方法
Joomla网站设计
网站建设|网站关键词应该如何布局有利于优化排名
Memory Access Patterns Are Important