XStream是一個開源項目,利用它可以方便的進行java對象和xml之間進行轉(zhuǎn)換,從而在測試,服務器設置等方面有很好的應用。
先建兩個java對象
1.Adress類
?2.Person類
3.生成一個Person對象,并將其轉(zhuǎn)化為xml
//生成一個java對象
??Person person=new Person();
??person.setName("chb");
??person.setAge(22);
??person.setSex("boy");
??
??//生成一個Adress對象
??Adress adr=new Adress();
??adr.setProvice("Beijing");
??adr.setCity("Beijing");
??person.setAdress(adr);
??
??//將java對象轉(zhuǎn)化為xml
??XStream xstream=new XStream(new DomDriver());
??String strxml=xstream.toXML(person);
??System.out.println(strxml);
輸出:
我們可以看到,xml根結(jié)點是<xml_chb.Person>是類的全名,這樣看起來很繁瑣,我們可以使用別名來改進這一現(xiàn)象:
? xstream.alias("person",Person.class);
??strxml=xstream.toXML(person);
??System.out.println(strxml);
輸出結(jié)果為:
4.從xml轉(zhuǎn)化為POJO
String str="<person><name>emily</name><sex>girl</sex><age>22</age><adress><provice>Beijing</provice><city>Beijing</city></adress></person>";
??Person person1=(Person)xstream.fromXML(str);
??System.out.println("姓名:"+person1.getName());
??System.out.println("性別:"+person1.getSex());
輸出結(jié)果為:
姓名:emily
性別:girl
5.修改元素值
Adress adr1=new Adress();
??adr1.setProvice("Shanghai");
??adr1.setCity("Shanghai");
??person.setAdress(adr1);
??strxml=xstream.toXML(person);
??System.out.println(strxml);
輸出結(jié)果:
XStream的jar包可以直接到http://xstream.codehaus.org/下載,那里有一些簡單例子
XStream是個很小的開源項目,所以它能實現(xiàn)的功能也就很有限,它只能包裝簡單類型的元素進行轉(zhuǎn)換,復雜類型的,比如Calendar,Date等類型則需要用戶自己實現(xiàn)Converter。
還有,XStream對xml的操作并不好,比如想把一個子節(jié)點變成屬性就是一個很復雜的工作,但是大家平時用于測試的話,看看對象中到底存著什么數(shù)據(jù),還是必要的。