Posted on 2007-05-08 18:14
qiyadeng 閱讀(23282)
評論(8) 編輯 收藏
兩分鐘教程
這是一個關于XStream快速的介紹。快速瀏覽一下你會馬上知道把一個對象轉換到XML或是轉換回來是多么的簡單。你肯定會碰到下面的問題。
創建能夠序列化的類
這是一組簡單的類。XStream能把這些類的實例轉換到XML或是轉換回來。
public class Person {
private String firstName;
private String lastName;
private PhoneNumber phonex;
private PhoneNumber fax;
//構造函數或是其他方法
}
public class PhoneNumber {
private int code;
private int number;
//構造函數或是其他方法
}
注:注意到這些都是私有變量。XStream不關心變量的作用域。不需要getter或是setter方法。并且,XStream不限定需要默認的構造函數。
實例化XStream
使用XStream,簡單實例化XStream類:
XStream xStream = new XStream();
你需要xstream-[version].jar and xpp3-[version].jar在classpath中。XPP3是一個非常快的XML拉式轉換器工具。如果你不想包含這個依賴,你可以使用標準的JAXP DOM轉換器來代替。
XStream xStream = new XStream(new DomDriver());//不需要XPP3庫
注:這個類的簡單設計是為了實現通用操作的。為了實現更復雜的操作你可以選擇自己創建出不同方式。
現在,為了使用XStream來更精簡的輸出XML,你可以為自定義的類創建別名到XML的元素名的映射。這是使用XStream唯一需要的映射的,甚至這個都是可選的。
xStream.alians("person",Person.class);
注:這是可選的一步。沒有這步XStream也可以很好的起作用,但是XML元素的名字就會包含每個類的全稱(包括包名),這將會使生成XML稍大。
序列號一個對象到XML
讓我們創建一個Person的實例并且填充它的變量域:
Person joe = new Person("Joe","Walnes");
joe.setPhone(new PhoneNumber(123,"1234-456"));
joe.setFax(new PhoneNumber(123,"9999-999"));
現在轉換到XML,你要做的是簡單的調用XStream:
String xml = xstream.toXML(joe);
生成的XML看上去像這樣:
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
非常簡單,像創建XML一樣。
從XML反序列化一個對象
從XML重新構造一個對象:
Person newJoe = (Person)xStream.fromXML(xml);
XStream是多么的簡單啊!
總結:
使用xStream.alias(String elementName, Class cls)為任何一個自定義類創建到類到元素的別名;
使用xStream.toXML(Object obj)轉換對象到XML;
使用xStream.fromXML(String xml)轉換XML到對象;
(附原文地址:
http://xstream.codehaus.org/tutorial.html)