Simple XML(五)

2014-11-24 02:57:41 · 作者: · 浏览: 3
blic String getValue() {
return value;
}

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

public void setValue(String pValue) {
value = pValue;
}

}

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

Serializer serializer = new Persister();

try {
PropertyList vo = initBean();
serializer.write(vo, new File(xmlpath));
} catch (Exception e) {
e.printStackTrace();
}
}

private static PropertyList initBean() {
PropertyList vo = new PropertyList();
vo.setName("Wife List");
List subList = new ArrayList();
EntryVo subvo = new EntryVo();
subvo.setName("A");
subvo.setValue("福晋");
subList.add(subvo);
subvo = new EntryVo();
subvo.setName("B");
subvo.setValue("侧福晋");
subList.add(subvo);
subvo = new EntryVo();
subvo.setName("C");
subvo.setValue("小三");
subList.add(subvo);
subvo = new EntryVo();
subvo.setName("D");
subvo.setValue("二奶");
subList.add(subvo);
vo.setList(subList);
return vo;

}

运行序列化程序后生成的XML文件如下:

Xml代码



福晋


侧福晋


小三


二奶




3.反序列化,运行结果打印对象信息如下:

PropertyList : [ name = Wife List , EntryVo list size = 4 ] .
4.修改注解@ElementList的参数

Java代码
@ElementList(name = "WifeList", entry = "wife")
private List list;
序列化后生成的XML文件如下:

Xml代码



福晋


侧福晋


小三


二奶






[六]、 inline 参数用法

1.java bean
以上节中得bean为基础修改注解如下:
Java代码
@Root
public class PropertyList {

@ElementList(name = "WifeList", entry = "wife", inline = true)
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() + " ] .";
}
}

2.序列化后生成的XML文件如下:

Java代码


福晋


侧福晋


小三


二奶


和上节生成的文件相比,XML结构少了一个层次。

[七]、构造函数的注解处理
1.java bean

Java代码
package michael.serialization.simplexml;

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
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 EntryVo {
public EntryVo(@Attribute(name = "name")
String name, @Element(name = "value")
String value) {
this.name = name;
this.value = value;
}

@Attribute(name = "name")
private String name;

@Element(name = "value")
private String value;

public String getName() {
return name;
}

public String getValue() {
return value;