您的位置:首页 > 编程语言 > Java开发

java xstream解析xml

2016-08-10 21:09 363 查看
package com.xstream;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

import com.thoughtworks.xstream.XStream;

public class Demo1 {
public static void main(String[] args) throws FileNotFoundException,
UnsupportedEncodingException {
// 对象-->xml : toXML()
// xml-->对象 : fromXML()
// objToXML();

objFromXML();
}

private static void objFromXML() {
XStream xStream = new XStream();
xStream.alias("Message", Message.class);
xStream.aliasField("发送人:", Message.class, "from");
xStream.aliasField("接收人:", Message.class, "to");
xStream.aliasField("正文", Message.class, "content");
xStream.aliasAttribute(Message.class, "id", "id");

Message msg = (Message) xStream.fromXML(new File("src\\Message.xml"));
System.out.println(msg.toString());
}

private static void objToXML() throws FileNotFoundException,
UnsupportedEncodingException {
Message msg = new Message(100000000, "小周", "老周",
"有些事是不能着急的,得看缘分!不要催,淡定。。。");
XStream xStream = new XStream();

// 设置别名:默认情况下,将一个对象转换成xml,会使用全类名和属性名当做标签名
// 如果需要修改,设置别名
// 第一种:全类名的问题:alias("自定义别名",类的字节码)
xStream.alias("Message", Message.class);
// 第二种:属性问题:
// xStream.aliasField("自定义别名", 定义属性的类的字节码(Class), "属性名");
xStream.aliasField("发送人:", Message.class, "from");
xStream.aliasField("接收人:", Message.class, "to");
xStream.aliasField("正文", Message.class, "content");

// 在标签中设置属性:默认情况下,所有的属性都以子标签的形式存在。
// 如果想要在标签中设置属性,也需要设置别名
// xStream.aliasAttribute(定义属性的类的字节码(Class), "属性名", "xml中的属性名");
xStream.aliasAttribute(Message.class, "id", "id");

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
new File("src\\Message.xml"), true), "utf-8");

xStream.toXML(msg, osw);
}
}


xstream所需jar包
http://download.csdn.net/detail/hoho_12/9600215
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java