Android--使用XMLPull解析xml
在Android中极力推荐的xmlpull方式解析xml。xmlpull不仅仅可以使用在Android上,同样也适用于javase,但在javase环境下,你需要自己去获取xmlpull所依赖的类库。
环境:
kxml2-2.3.0.jar
xmlpull_1_1_3_4c.jar
以上两个jar分别从以下网站下载:
http://www.xmlpull.org/ xmlpull
http://kxml.sourceforge.net/ kxml
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<root><student id="1" group="1"><name>张三</name><sex>男</sex><age>18</age><email>zhangsan@163.com</email><birthday>1987-06-08</birthday><memo>好学生</memo></student><student id="2" group="2"><name>李四</name><sex>女</sex><age>18</age><email>lisi@163.com</email><birthday>1987-06-08</birthday><memo>好学生</memo></student><student id="3" group="3"><name>小王</name><sex>男</sex><age>18</age><email>xiaowang@163.com</email><birthday>1987-06-08</birthday><memo>好学生</memo></student><student id="4" group="4"><name>小张</name><sex>男</sex><age>18</age><email>xiaozhang@163.com</email><birthday>1987-06-08</birthday><memo>好学生</memo></student><student id="5" group="5"><name>小明</name><sex>男</sex><age>18</age><email>xiaoming@163.com</email><birthday>1987-06-08</birthday><memo>好学生</memo></student>
</root>
Xml对应的实体bean文件:
package com.parsexml.entity;public class Student {private int id;private int group;private String name;private String sex;private int age;private String email;private String memo;private String birthday;public int getId() {return id;}public void setId(int id) {this.id = id;}public int getGroup() {return group;}public void setGroup(int group) {this.group = group;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}}
Pull解析代码:
package com.parsexml;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;import com.parsexml.entity.Student;public class PullParseXml {public List<Student> PullParseXML(){List<Student> list=null;Student student = null;//构建XmlPullParserFactorytry {XmlPullParserFactory pullParserFactory=XmlPullParserFactory.newInstance();//获取XmlPullParser的实例XmlPullParser xmlPullParser=pullParserFactory.newPullParser();//设置输入流 xml文件xmlPullParser.setInput(Thread.currentThread().getContextClassLoader().getResourceAsStream("Student.xml"), "UTF-8");//开始int eventType=xmlPullParser.getEventType();try {while(eventType!=XmlPullParser.END_DOCUMENT){String nodeName=xmlPullParser.getName();switch (eventType) {//文档开始case XmlPullParser.START_DOCUMENT:list=new ArrayList<Student>();break;//开始节点case XmlPullParser.START_TAG://判断如果其实节点为studentif("student".equals(nodeName)){//实例化student对象student=new Student();//设置Id属性student.setId(Integer.parseInt(xmlPullParser.getAttributeValue(0)));//设置Group属性student.setGroup(Integer.parseInt(xmlPullParser.getAttributeValue(1)));}else if("name".equals(nodeName)){//设置namestudent.setName(xmlPullParser.nextText());}else if("sex".equals(nodeName)){//设置sexstudent.setSex(xmlPullParser.nextText());}else if("age".equals(nodeName)){//设置agestudent.setAge(Integer.parseInt(xmlPullParser.nextText()));}else if("email".equals(nodeName)){//设置emailstudent.setEmail(xmlPullParser.nextText());}else if("birthday".equals(nodeName)){//设置birthdaystudent.setBirthday(xmlPullParser.nextText());}else if("memo".equals(nodeName)){//设置memo属性student.setMemo(xmlPullParser.nextText());}break;//结束节点case XmlPullParser.END_TAG:if("student".equals(nodeName)){list.add(student);student=null;}break;default:break;}eventType=xmlPullParser.next();}} catch (NumberFormatException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}} catch (XmlPullParserException e) {e.printStackTrace();}return list;}public static void main(String[] args) {List<Student> list=new PullParseXml().PullParseXML();for(Student student:list){System.out.println("id:"+student.getId()+"\tgroup:"+student.getGroup()+"\tname:"+student.getName()+"\tsex:"+student.getSex()+"\tage:"+student.getAge()+"\temail:"+student.getEmail()+"\tbirthday:"+student.getBirthday()+"\tmemo:"+student.getMemo());}}}
注:若工程中缺少kxml2-2.3.0.jar文件则会报以下异常信息:
你应该添加kxml2-2.3.0.jar包到你的classpath下
转载于:https://www.cnblogs.com/chaoyu/p/6436886.html
Android--使用XMLPull解析xml相关推荐
- Android之Pull解析XML
一.Pull解析方法介绍 除了可以使用SAX和DOM解析XML文件,也可以使用Android内置的Pull解析器解析XML文件.Pull解析器的运行方式与SAX解析器相似.它也是事件触发的.Pull解 ...
- Android 创建与解析XML(一)—— 概述
Android 是最常用的智能手机平台,XML 是数据交换的标准媒介,Android 中可以使用标准的XML生成器.解析器.转换器 API,对 XML 进行解析和转换. XML,相关有DOM.SAX. ...
- Android 天气预报【解析XML / Json文件(2种方式:手动解析、Gson库解析)】
源码 [工程文件]:https://gitee.com/lwx001/Weather XML : activity_main.xml : <RelativeLayout xmlns:androi ...
- Android 初步 XML------PULL解析器
对于XML文件,有三种解析方式 SAX(Simple API for Xml):DOM(Document Object Model):PULL解析器,各自的缺优点咋这里不详细说明. PULL解析器时 ...
- android用sax解析xml,详解android使用SAX解析XML文件
解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析. DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以根据DOM接口来操作这个树结构了. 优点:整个 ...
- android xml sax解析,《android用SAX解析xml》
主要的Acivity package com.xml.xml; import java.io.Serializable; import java.util.ArrayList; import java ...
- Android几种解析XML方式的比较
XML介绍:Extensible Markup Language,即可扩展标记语言 一.使用SAX解析XML SAX(Simple API for XML) 使用流式处理的方式,它并不记录所读内容的相 ...
- android使用sax解析xml
随着技术的发展,现在的web已经和以前不同了.web已经逐渐像移动的方向倾斜,作为程序员的确应该拓展一下自己的知识层面.学习各方面的知识,今天就接着前几天的弄一下android的xml解析,这次就使用 ...
- android dom4j包,Android 创建与解析XML(五)—— Dom4j方式
1.Dom4j概述 dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the J ...
最新文章
- 2022-2028年中国内衣行业研究及前瞻分析报告
- qt dll 1% 不是有效的win32应用程序
- what is the meaning of bring you up to speed?
- make: 警告:检测到时钟错误。您的创建可能是不完整的。
- halcon create_ocr_class_svm 使用SVM分类器创建OCR分类器
- 添加删除约束脚本 ::fn_get_sql
- 96. 不同的二叉搜索树
- 2ask调制解调信噪比matlab实现,MATLAB模拟2ASK调制误码率与信噪比关系曲线的程序...
- AD19自动布线出错,有些线未连接
- Page.IsValid 属性
- SQL Server 2012 读写分离设置
- 信息安全收集注意事项
- Drools 规则引擎一文读懂
- 小甲鱼python课后题共多少讲_小甲鱼Python第九讲课后习题--010列表
- 微信公众平台开发[6] —— 微信开发集成类的使用
- 时间序列分析_餐厅销量预测_2022_5_14
- 个人股权能转让给别人吗
- 中国物流企业家谈“物流”
- 原生js或者jquery获取父级元素/同级元素/下级元素
- 利用PDF编辑软件给PDF添加页码的操作全过程
热门文章
- mysql拒绝访问root用户_设置mysql的root用户允许远程登录
- mysql添加外键的时候报错_mysql处理添加外键时 error 150 问题
- 如何得出数组里最大_相邻两数的最大差值(超巧妙解法)
- garch预测 python_安利几个非常实用的 Python 库
- C#学员信息管理试题
- 8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,循环控制及其优化
- Hibernate检索1
- 屏幕坏点怎么产生的_修复液晶屏幕坏点的妙招
- Nginx添加ngx_http_headers_module模块
- JDBC之一:快速入门