加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml解析之pull解析

发布时间:2020-12-16 00:16:33 所属栏目:百科 来源:网络整理
导读:将xml文件解析成java对象 public static ListPerson getPerson(InputStream is) throws IOException{ ListPerson list=null; Person p=null; //获取解析类 XmlPullParser parser=Xml.newPullParser(); try { //设置输入源 parser.setInput(is,"utf-8"); int

将xml文件解析成java对象

public static List<Person> getPerson(InputStream is) throws IOException{
    List<Person> list=null;
    Person p=null;
    //获取解析类
    XmlPullParser parser=Xml.newPullParser();
    try {
        //设置输入源
        parser.setInput(is,"utf-8");

        int type=parser.getEventType();
        while(type!=XmlPullParser.END_DOCUMENT){

            switch(type){
            case XmlPullParser.START_DOCUMENT:
                //当开始解析文档的时候
                list=new ArrayList<Person>();    
            case XmlPullParser.START_TAG:

                 String tagName= parser.getName();
                    if("person".equals(tagName)){
                      p=new Person();
                     //设置属性
                     p.setId(Integer.parseInt(parser.getAttributeValue(0)));
                 }else if("name".equals(tagName)){
                        Log.v("tag","name:"+tagName);
                     p.setName(parser.nextText());
                }else if("age".equals(tagName)){
                    p.setAge(Integer.parseInt(parser.nextText()));

                }
                break;

            case XmlPullParser.END_TAG:
                if("person".equals(parser.getName())){
                    list.add(p);
                    p=null;
                }
                break;
            }
            //移动
            type=parser.next();
        }
    } catch (XmlPullParserException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return list;
}

//将javabean对象转换成xml文件存储

public static void savePerson(List<Person> list,Writer writer){
    //xml序列化工具
    XmlSerializer serializer=Xml.newSerializer();
    try {
        //设置输出源
        serializer.setOutput(writer);
        //开始
        serializer.startDocument("utf-8",true);

        serializer.startTag(null,"persons");

        for(int i=0;i<list.size();i++){
            serializer.startTag(null,"person");
            //设置属性
            serializer.attribute(null,"id",list.get(i).getId()+"");

            serializer.startTag(null,"name");
            serializer.text(list.get(i).getName());
            serializer.endTag(null,"name");

            serializer.startTag(null,"age");
            serializer.text(list.get(i).getAge()+"");
            serializer.endTag(null,"age");

            serializer.endTag(null,"person");
        }
        serializer.endTag(null,"persons");
        //结束
        serializer.endDocument();
        serializer.flush();
        writer.flush();
        writer.close();
    }catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读