环境:
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@>
@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;
}
}
@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()); } } }
@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()); } } }