请教,Java中xml解析成pojo类。

项目中有一个功能就是xml解析成实体类,有人会吗?最好有代码,万分感谢!!!

Bean类:
public class Student {
private String name;
private int age;
private String sex;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

}

XML文件:
<?xml version="1.0" encoding="UTF-8"?>



21




22




21


解析类:
public class Parser {
public static List parser(){
//创建List集合 和 实体类对象
List lists = null;
Student student = null;

    try {
        //这里的IO流用实际的代替就行,这里只是假的,举个栗子
        InputStream is = new InputStream() {
            @Override
            public int read() throws IOException {
                return 0;
            }
        };

        //创建解析器
        XmlPullParser xpp = Xml.newPullParser();
        //设置编码
        xpp.setInput(is, "utf-8");
        //获取解析时间的类型
        int eventType = xpp.getEventType();
        //当文件没有解析到末尾时:
        while(eventType != XmlPullParser.END_DOCUMENT){
            switch (eventType){
                //开始标记
                case XmlPullParser.START_TAG:
                    if("student".equals(xpp.getName())){
                        lists = new ArrayList<>();
                    }
                    if("stu".equals(xpp.getName())){
                        student = new Student();
                    }
                    if("name".equals(xpp.getName())){
                        student.setName(xpp.nextText());
                    }
                    if("age".equals(xpp.getName())){
                        student.setAge(Integer.valueOf(xpp.nextText()));
                    }
                    if("sex".equals(xpp.getName())){
                        student.setSex(xpp.nextText());
                    }
                    break;
                //结束标志
                case XmlPullParser.END_TAG:
                    if("stu".equals(xpp.getName())){
                        lists.add(student);
                    }
                    break;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return lists;
}

}

如果是解析成实体类的话,我想应该是这个

XML上传似乎出了问题...
图片说明


抱歉,在switch(eventType){} 后面要加 xpp.next(); 我忘了。。。