li13609254624 2016-10-24 09:18 采纳率: 0%
浏览 1048

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

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

  • 写回答

3条回答 默认 最新

  • wxw20147854 2016-10-24 12:43
    关注

    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;
    }
    

    }

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

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧