Simple XML(四)

2014-11-24 02:57:41 · 作者: · 浏览: 1

File xmlFile = new File(xmlpath);
serializer.write(config, xmlFile);
} catch (Exception e) {
e.printStackTrace();
}
}
运行上述方法,序列化生成的XML文件如下:

Xml代码


sjsky.iteye.com

Michael




3.反序列化的方法和之前的一致,自己 可以 测试下结果是否正确。

[四]、可选的非强制性的元素或属性

1.java bean
Java代码
package michael.serialization.simplexml;

import java.util.Date;

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

/**
* @blog http://sjsky.iteye.com
* @author Michael
*/
@Root
public class MyTestVo {

@Element
private String userName;

// 不是每个人都有妻子的 吼吼
@Attribute(required = false)
private String wife;

@Attribute
private String realName;

// 不想泄露年龄噢
@Element(required = false)
private Date bornDate;

@Element
private Double height;

@Override
public String toString() {
return "MyTestVo : [ userName = " + userName + " , wife = " + wife
+ " , realName = " + realName + " , height = " + height
+ " , bornDate = " + bornDate + " ]";
}

//省略setter getter方法

}

2.序列化
Java代码
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String xmlpath = "d:/test/michael/simple_testvo.xml";

MyTestVo vo = new MyTestVo();
vo.setUserName("michael");
vo.setRealName("大大");
vo.setHeight(173.3d);

Serializer serializer = new Persister();
try {
File xmlFile = new File(xmlpath);
serializer.write(vo, xmlFile);
} catch (Exception e) {
e.printStackTrace();
}
运行序列化程序后生成的XML文件如下:

Xml代码

michael
173.3

3.反序列化

运行反序列化程序后打印结果如下:

MyTestVo : [ userName = michael , wife = null , realName = 大大 , height = 173.3 , bornDate = null ]

[五]、List处理
1.java bean
Java代码
package michael.serialization.simplexml;

import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;

/**
* @blog http://sjsky.iteye.com
* @author Michael
*/
@Root
public class PropertyList {

@ElementList
private List list;

@Attribute
private String name;

public List getList() {
return list;
}

public String getName() {
return name;
}

public void setList(List pList) {
list = pList;
}

public void setName(String pName) {
name = pName;
}

@Override
public String toString() {
return "PropertyList : [ name = " + name + " , EntryVo list size = "
+ list.size() + " ] .";
}
}

Java代码
package michael.serialization.simplexml;

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

/**
* @blog http://sjsky.iteye.com
* @author Michael
*/
@Root
public class EntryVo {

@Attribute
private String name;

@Element
private String value;

public String getName() {
return name;
}

pu