pull解析技术以及序列化XmlSerializer的使用

1先来看pull解析
没啥说的,就是一个模板。

package com.test;

import java.awt.Event;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.StringReader;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer;

import cn.itcast.user.model.User;

/**
 * 
 * @author fang
 * 生成xml文档
 *
 */

public class Demo3 {


    public static void main(String argc[]) {
        new Demo3();

    }

    public Demo3() {

        xmlParse();
    }

      public void xmlParse(){
            try {
                String name = null;
                String pirce = null;
                XmlPullParserFactory xmlPullParserFactory=XmlPullParserFactory.newInstance();
                XmlPullParser xmlPullParser=xmlPullParserFactory.newPullParser();
                System.out.println("sgssggw");
                File file=new File("NewFile.xml");
                if(!file.exists()){
                    System.out.println("文件不存在");
                }
            FileInputStream fileInputStream=new FileInputStream(file);
                xmlPullParser.setInput(fileInputStream,"utf-8");
                int evementType=xmlPullParser.getEventType();
                while(evementType!=XmlPullParser.END_DOCUMENT){
                    String pointName=xmlPullParser.getName();
                    switch (evementType) {
                    case XmlPullParser.START_TAG:
                        if("name".equals(pointName)){
                            name=xmlPullParser.nextText();
                        }else if("pirce".equals(pointName)){
                            pirce=xmlPullParser.nextText();
                        }
                        break;

                    case XmlPullParser.END_TAG:
                        if("book".equals(pointName)){
                            System.out.println("值为"+name);
                            System.out.println("值为"+pirce);
                        }

                        break;

                    default:
                        break;
                    }
                    evementType=xmlPullParser.next();

                }


            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }    

    }
/*
下面这个房噶的作用是序列化,将user的List集合中的数据
直接序列化为xml文件,先贴下userBean
*/  

public class User {
    private String username;
    private String password;
    private String email;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

}

下面是处理的方法
不会晕,就是成对出现的,可以写完整一个之后写中间的标签

      public void XmlSerializer(List<User> users){

            // 序列化 XmlSerializer
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlSerializer serializer = factory.newSerializer();

            // 设置输出文件
            FileOutputStream fileOutputStream = new FileOutputStream("c.xml");
            serializer.setOutput(fileOutputStream, "utf-8");
            serializer.startDocument("utf-8", true);

            serializer.startTag(null, "users");

            // 每一个user对象 对应 user元素
            for (User user : users) {
                serializer.startTag(null, "user");
                serializer.startTag(null, "username");
                serializer.text(user.getUsername());
                serializer.endTag(null, "username");

                serializer.startTag(null, "password");
                serializer.text(user.getPassword());
                serializer.endTag(null, "password");

                serializer.startTag(null, "email");
                serializer.text(user.getEmail());
                serializer.endTag(null, "email");

                serializer.endTag(null, "user");
            }

            serializer.endTag(null, "users");

            serializer.endDocument();

            fileOutputStream.close();     
      }
}

pull解析需要导包,大家自己下载导入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值