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