Android中采用Pull解析器对XML文件进行解析
16lz
2021-12-04
一、基本介绍
Android中已经集成了xmlpull解析器,所以使用XmlPullParser类非常方便,不需要从外部导入所依赖的Jar包,Pull解析器在解析xml文件的性能上是非常优秀的。
二、例子
读取到xml的声明返回数字0 START_DOCUMENT;
读取到xml的结束返回数字1 END_DOCUMENT ;
读取到xml的开始标签返回数字2 START_TAG
读取到xml的结束标签返回数字3 END_TAG
读取到xml的文本返回数字4 TEXT
.xml文件
- <?xmlversion="1.0"encoding="UTF-8"?>
- <people>
- <personid="001">
- <name>XY1</name>
- <age>22</age>
- </person>
- <personid="002">
- <name>XY2</name>
- <age>22</age>
- </person>
- </people>
.解析类
- publicclassPersonService
- {
- publicListgetPeople(InputStreamxml)throwsException
- {
- Listlst=null;
- Personperson=null;
- //获得pull解析器工厂
- XmlPullParserFactorypullParserFactory=XmlPullParserFactory.newInstance();
- //获取XmlPullParser的实例
- XmlPullParserpullParser=pullParserFactory.newPullParser();
- //设置需要解析的XML数据
- pullParser.setInput(xml,"UTF-8");
- //取得事件
- intevent=pullParser.getEventType();
- //若为解析到末尾
- while(event!=XmlPullParser.END_DOCUMENT)//文档结束
- {
- //节点名称
- StringnodeName=pullParser.getName();
- switch(event)
- {
- caseXmlPullParser.START_DOCUMENT://文档开始
- lst=newArrayList();
- break;
- caseXmlPullParser.START_TAG://标签开始
- if("person".equals(nodeName))
- {
- Stringid=pullParser.getAttributeValue(0);
- person=newPerson();
- person.setId(id);
- }
- if("name".equals(nodeName))
- {
- Stringname=pullParser.nextText();
- person.setName(name);
- }
- if("age".equals(nodeName))
- {
- intage=Integer.valueOf(pullParser.nextText());
- person.setAge(age);
- }
- break;
- caseXmlPullParser.END_TAG://标签结束
- if("person".equals(nodeName))
- {
- lst.add(person);
- person=null;
- }
- break;
- }
- event=pullParser.next();//下一个标签
- }
- returnlst;
- }
- }
更多相关文章
- android 对于asset下文件的操作
- Android应用程序apk内xml文件编码解析
- Android(安卓)深入解析光传感器(一)
- android输入法02:openwnn源码解析01—输入流程
- android 远程下载与pull解析技术
- Activity属性解析
- android 开发屏蔽home键,返回键
- Android(安卓)ApiDemos示例解析(161):Views->Layouts->TableLayo
- Android(安卓)--Intent意图的讲解