XStream生成XML

使用XStream,需要下载XStream.jar包

 

为了使用XStream,需要对其初始化。初始化方法有两种
XStream xstream = new XStream();  
这种方式的初始化需要xpp3-[version].jar的支持。xpp是一个快速解析XML文件的解析器。假如不想包括这个依赖jar包,你可以使用标准的JAXP DOM来解析它。如下:
XStream xstream = new XStream(new DomDriver());  //
不需要 XPP3.jar

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.nio.charset.Charset;

import java.util.ArrayList;

import java.util.List;

 

import com.thoughtworks.xstream.XStream;

import com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider;

 

public class ToXML_XStream {

    public static void main(String[] args) {

       ToXML_XStream.write();

       ToXML_XStream.read();

    }

 

    public static void write() {

       XStream sm = new XStream();

       User t = new User();

       t.setName("FuQiuLian");

       t.setGender("female");

       t.setAge(25);

       t.setPhone("13568522563");

       try {

           OutputStream out = new FileOutputStream(new File("XStream_1.xml"));

           OutputStreamWriter writer = new OutputStreamWriter(out, Charset

                  .forName("GBK"));

           writer.write("/n");

 

           sm.toXML(t, writer);

           out.close();

       } catch (Exception e) {

           e.printStackTrace();

       }

    }

 

    public static void read() {

       XStream sm = new XStream(new PureJavaReflectionProvider());

 

       try {

           InputStream in = new FileInputStream(new File("XStream_1.xml"));

           InputStreamReader reader = new InputStreamReader(in, Charset

                  .forName("GBK"));

           User t = (User) sm.fromXML(in);

           System.out.println(t.getName());

           in.close();

       } catch (Exception e) {

           e.printStackTrace();

       }

    }

 

 

 

public class User {

    // 学生姓名

    private String name;

    // 学生性别

    private String gender;

    // 学生年龄

    private int age;

    // 学生电话号码

    private String phone;

 

    public String toString() {

       StringBuffer sb = new StringBuffer();

       sb.append("姓名:").append(this.name).append("  ");

       sb.append("性别:").append(gender).append("  ");

       sb.append("年龄:").append(age).append("  ");

       sb.append("电话:").append(phone);

       return sb.toString();

    }

 

    public int getAge() {

       return age;

    }

 

    public void setAge(int age) {

       this.age = age;

    }

 

    public String getGender() {

       return gender;

    }

 

    public void setGender(String gender) {

       this.gender = gender;

    }

 

    public String getName() {

       return name;

    }

 

    public void setName(String name) {

       this.name = name;

    }

 

    public String getPhone() {

       return phone;

    }

 

    public void setPhone(String phone) {

       this.phone = phone;

    }

}

 

  1.  XStream 的编码:
    本身并没有实现编码,必须依靠java.io.Writer来实现输出编码的转换。参考上例代码
  2. XStream 的常用方法
    xstream.omitField(MyTest.class, "name");               定义某一个属性的值不进行xml序列化。
    xstream.alias("cat", Cat.class);
    xstream.aliasField("age", Cat.class, "mAge");       
    对某一个类和类的属性进行别名定义。
    xstream.useAttributeFor(String.class);                    
    对所有String类型的字段定义为属性tag显示
    xstream.useAttributeFor("name".String.class);      
    对所有String类型的字段名成为name 定义为属性tag显示

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值