<?
xml version="1.0" encoding="UTF-8"
?>
< person >
< name >yunyun </ name >
< gender >true </ gender >
< address >shanghai </ address >
< contents >cc </ contents >
< contents >ss </ contents >
< taxs >
< string >1 </ string >
< string >2 </ string >
< string >3 </ string >
</ taxs >
</ person >
< person >
< name >yunyun </ name >
< gender >true </ gender >
< address >shanghai </ address >
< contents >cc </ contents >
< contents >ss </ contents >
< taxs >
< string >1 </ string >
< string >2 </ string >
< string >3 </ string >
</ taxs >
</ person >
JavaBean
public
class Person2
{
private String name;
private boolean gender;
private String homeAddress;
private List<String> contentslist;
private String[] taxs;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
private String name;
private boolean gender;
private String homeAddress;
private List<String> contentslist;
private String[] taxs;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
测试类 解析xml 反序列化到javaBean object
public
class TestXmlToObject2
{
public static final XStream xstream=new XStream();
static{
xstream.alias("person", Person2.class);//类别名
xstream.aliasField("address", Person2.class, "homeAddress"); //属性别名
xstream.alias("contents",String.class);//private List<String> contentslist;是string类型
xstream.addImplicitCollection(Person2.class, "contentslist");//隐式集合 隐藏contentslist
Person2 person=(Person2)xstream.fromXML(TestXmlToObject2.class.getClassLoader().getResourceAsStream("person02.xml"));
System.out.println(person.toString());
}
public static void main(String[] args) {
}
}
public static final XStream xstream=new XStream();
static{
xstream.alias("person", Person2.class);//类别名
xstream.aliasField("address", Person2.class, "homeAddress"); //属性别名
xstream.alias("contents",String.class);//private List<String> contentslist;是string类型
xstream.addImplicitCollection(Person2.class, "contentslist");//隐式集合 隐藏contentslist
Person2 person=(Person2)xstream.fromXML(TestXmlToObject2.class.getClassLoader().getResourceAsStream("person02.xml"));
System.out.println(person.toString());
}
public static void main(String[] args) {
}
}
二: 注解方式
xml:
<?
xml version="1.0" encoding="UTF-8"
?>
< person >
< name >yunyun </ name >
< gender >true </ gender >
< address >shanghai </ address >
< company >yihaodian </ company >
< sources >
< string >firstSources </ string >
< string >secondSources </ string >
</ sources >
< part >firstPart </ part >
< part >secondPart </ part >
</ person >
< person >
< name >yunyun </ name >
< gender >true </ gender >
< address >shanghai </ address >
< company >yihaodian </ company >
< sources >
< string >firstSources </ string >
< string >secondSources </ string >
</ sources >
< part >firstPart </ part >
< part >secondPart </ part >
</ person >
javaBean
@XStreamAlias("person")
public class Person3 {
private String name;
private boolean gender;
@XStreamAlias("address")
private String homeAddress;
private String company;
@XStreamImplicit(itemFieldName="part")
private List < String > content;
private String[] sources;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
public class Person3 {
private String name;
private boolean gender;
@XStreamAlias("address")
private String homeAddress;
private String company;
@XStreamImplicit(itemFieldName="part")
private List < String > content;
private String[] sources;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
测试
public
class TestXmlToObject3
{
public static final XStream xstream=new XStream();
static{
xstream.processAnnotations(Person3.class);//显示声明使用注解
xstream.autodetectAnnotations(true);
Person3 person=(Person3)xstream.fromXML(TestXmlToObject3.class.getClassLoader().getResourceAsStream("person03.xml"));
System.out.println(person.toString());
}
public static void main(String[] args) {
}
}
public static final XStream xstream=new XStream();
static{
xstream.processAnnotations(Person3.class);//显示声明使用注解
xstream.autodetectAnnotations(true);
Person3 person=(Person3)xstream.fromXML(TestXmlToObject3.class.getClassLoader().getResourceAsStream("person03.xml"));
System.out.println(person.toString());
}
public static void main(String[] args) {
}
}
POM.xml
<
dependency
>
< groupId >com.thoughtworks.xstream </ groupId >
< artifactId >xstream </ artifactId >
< version >1.3.1 </ version >
</ dependency >
< dependency >
< groupId >commons-lang </ groupId >
< artifactId >commons-lang </ artifactId >
< version >2.4 </ version >
</ dependency >
< groupId >com.thoughtworks.xstream </ groupId >
< artifactId >xstream </ artifactId >
< version >1.3.1 </ version >
</ dependency >
< dependency >
< groupId >commons-lang </ groupId >
< artifactId >commons-lang </ artifactId >
< version >2.4 </ version >
</ dependency >