pull解析器解析 生成 xml文件

写一个xml文件
写一个javabean


public class Persion {
    //persion里面应该具有哪些属性,要根据xml的内容来定
    private Integer id;
    private String name;
    private Integer age;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Persion [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
    public Persion(Integer id, String name, Integer age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public Persion(){}


}

业务bean
利用pull解析器,解析xml文件

public class Persionservice{
    public static List<Persion> getPersions(InputStream xml) throws Exception{
        List<Persion> persons = null;
        Persion person = null;
        //初始化pull解析器
        XmlPullParser pullParser = Xml.newPullParser();

        //为pull解析器设置要解析的xml数据
        pullParser.setInput(xml, "UTF-8");
        //获得事件
        int event = pullParser.getEventType();
        while (event != pullParser.END_DOCUMENT) {
            switch (event) {
            case XmlPullParser.START_DOCUMENT:
                //初始化persion
                persons = new ArrayList<Persion>();
                break;

            case XmlPullParser.START_TAG:
                if ("persion".equals(pullParser.getName())) {
                    int id = new Integer(pullParser.getAttributeValue(0));
                    person = new Persion();
                    person.setId(id);}

                    if ("name".equals(pullParser.getName())) {
                        String name = pullParser.nextText();
                        person.setName(name);
                        }
                        if ("age".equals(pullParser.getName())) {
                            int age = new Integer(pullParser.nextText());
                            person.setAge(age);

                }
                break;

                //判断最后节点是否为persion,如果是,则将persion添加到list中去
                    case XmlPullParser.END_TAG:
                        if ("persion".equals(pullParser.getName())) {
                            persons.add(person);
                            person = null;
                        }

                        break;

            }
                    event = pullParser.next();

        }
        return persons;

    }

利用pull解析器生成xml文件
业务bean方法如下

    public static void save(List<Persion> persions,OutputStream out) throws Exception{

        XmlSerializer serializer = Xml.newSerializer();
        serializer.setOutput(out, "UTF-8");
        serializer.startDocument("UTF-8", true);

        serializer.startTag(null, "persion");

        for (Persion persion :persions) {
            serializer.startTag(null, "persion");
            //属性
            serializer.attribute(null, "id", persion.getId().toString());


            //子节点
            serializer.startTag(null, "name");
            serializer.text(persion.getName());
            serializer.endTag(null, "name");

            serializer.startTag(null, "age");
            serializer.text(persion.getAge().toString());
            serializer.endTag(null, "age");

        }
        serializer.endTag(null, "persion");
        serializer.endDocument();

        //刷新后关闭输出流

        out.flush();
        out.close();


    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值