xmlpull解析xml

前端之家收集整理的这篇文章主要介绍了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文件:

@H_502_16@<? xmlversion="1.0"encoding="UTF-8" @H_502_16@?>
@H_502_16@< root @H_502_16@>
student id @H_502_16@="1" group @H_502_16@="1" name @H_502_16@>张三 @H_502_16@</ sex @H_502_16@>男 age @H_502_16@>18 email @H_502_16@>zhangsan@163.com birthday @H_502_16@>1987-06-08 memo @H_502_16@>好学生 student @H_502_16@="2" ="2" @H_502_16@>李四 @H_502_16@>女 @H_502_16@>lisi@163.com @H_502_16@="3" ="3" @H_502_16@>小王 @H_502_16@>xiaowang@163.com @H_502_16@="4" ="4" @H_502_16@>小张 @H_502_16@>xiaozhang@163.com @H_502_16@="5" ="5" @H_502_16@>小明 @H_502_16@>xiaoming@163.com @H_502_16@>
@H_502_16@>

Xml对应的实体bean文件:

@H_502_16@packagecom.parsexml.entity;

@H_502_16@public @H_502_16@classStudent{

@H_502_16@private @H_502_16@intid;
@H_502_16@intgroup;
@H_502_16@privateStringname;
@H_502_16@privateStringsex;
@H_502_16@intage;
@H_502_16@privateStringemail;
@H_502_16@privateStringmemo;
@H_502_16@privateStringbirthday;
@H_502_16@intgetId(){
@H_502_16@returnid;
}
@H_502_16@voidsetId( @H_502_16@intid){
@H_502_16@this.id=id;
}
@H_502_16@intgetGroup(){
@H_502_16@returngroup;
}
@H_502_16@voidsetGroup( @H_502_16@intgroup){
@H_502_16@this.group=group;
}
@H_502_16@publicStringgetName(){
@H_502_16@returnname;
}
@H_502_16@voidsetName(Stringname){
@H_502_16@this.name=name;
}
@H_502_16@publicStringgetSex(){
@H_502_16@returnsex;
}
@H_502_16@voidsetSex(Stringsex){
@H_502_16@this.sex=sex;
}
@H_502_16@intgetAge(){
@H_502_16@returnage;
}
@H_502_16@voidsetAge( @H_502_16@intage){
@H_502_16@this.age=age;
}
@H_502_16@publicStringgetEmail(){
@H_502_16@returnemail;
}
@H_502_16@voidsetEmail(Stringemail){
@H_502_16@this.email=email;
}
@H_502_16@publicStringgetMemo(){
@H_502_16@returnmemo;
}
@H_502_16@voidsetMemo(Stringmemo){
@H_502_16@this.memo=memo;
}
@H_502_16@publicStringgetBirthday(){
@H_502_16@returnbirthday;
}
@H_502_16@voidsetBirthday(Stringbirthday){
@H_502_16@this.birthday=birthday;
}

}

Pull解析代码

@H_502_16@packagecom.parsexml;

@H_502_16@importjava.io.IOException;
@H_502_16@importjava.util.ArrayList;
@H_502_16@importjava.util.List;

@H_502_16@importorg.xmlpull.v1.XmlPullParser;
@H_502_16@importorg.xmlpull.v1.XmlPullParserException;
@H_502_16@importorg.xmlpull.v1.XmlPullParserFactory;

@H_502_16@importcom.parsexml.entity.Student;

@H_502_16@classPullParseXml{


@H_502_16@publicList<Student>PullParseXML(){

List<Student>list= @H_502_16@null;
Studentstudent= @H_502_16@null;

// 构建XmlPullParserFactory
@H_502_16@try{
XmlPullParserFactorypullParserFactory=XmlPullParserFactory.newInstance();
获取XmlPullParser的实例
XmlPullParserxmlPullParser=pullParserFactory.newPullParser();
设置输入流xml文件
xmlPullParser.setInput(Thread.currentThread().getContextClassLoader().getResourceAsStream("Student.xml"),"UTF-8");

开始 @H_502_16@inteventType=xmlPullParser.getEventType();

@H_502_16@try{
@H_502_16@while(eventType!=XmlPullParser.END_DOCUMENT){
StringnodeName=xmlPullParser.getName();
@H_502_16@switch(eventType){
文档开始 @H_502_16@caseXmlPullParser.START_DOCUMENT:
list= @H_502_16@newArrayList<Student>();
@H_502_16@break;
开始节点 @H_502_16@caseXmlPullParser.START_TAG:
判断如果其实节点为student @H_502_16@if("student".equals(nodeName)){
实例化student对象
student= @H_502_16@newStudent();
设置Id属性
student.setId(Integer.parseInt(xmlPullParser.getAttributeValue(0)));
设置Group属性
student.setGroup(Integer.parseInt(xmlPullParser.getAttributeValue(1)));
} @H_502_16@else @H_502_16@if("name".equals(nodeName)){
设置name
student.setName(xmlPullParser.nextText());
} @H_502_16@if("sex".equals(nodeName)){
设置sex
student.setSex(xmlPullParser.nextText());
} @H_502_16@if("age".equals(nodeName)){
设置age
student.setAge(Integer.parseInt(xmlPullParser.nextText()));
} @H_502_16@if("email".equals(nodeName)){
设置email
student.setEmail(xmlPullParser.nextText());
} @H_502_16@if("birthday".equals(nodeName)){
设置birthday
student.setBirthday(xmlPullParser.nextText());
} @H_502_16@if("memo".equals(nodeName)){
设置memo属性
student.setMemo(xmlPullParser.nextText());
}
结束节点 @H_502_16@caseXmlPullParser.END_TAG:
@H_502_16@if("student".equals(nodeName)){
list.add(student);
student= @H_502_16@null;
}
@H_502_16@default:
@H_502_16@break;
}
eventType=xmlPullParser.next();
}
} @H_502_16@catch(NumberFormatExceptione){
e.printStackTrace();
} @H_502_16@catch(IOExceptione){
e.printStackTrace();
}
} @H_502_16@catch(XmlPullParserExceptione){
e.printStackTrace();
}

@H_502_16@returnlist;
}

@H_502_16@static @H_502_16@voidmain(String[]args){
List<Student>list= @H_502_16@newPullParseXml().PullParseXML();
@H_502_16@for(Studentstudent: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()); } } }

猜你在找的XML相关文章