XStream兩分鐘教程zz

          Posted on 2007-11-06 13:11 yukui 閱讀(172) 評論(0)  編輯  收藏

           兩分鐘教程

            這是一個關于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)

          Feedback

          # re: XStream兩分鐘教程(譯)  回復  更多評論   

          2007-05-08 23:22 by yeshucheng
          只是在String中來回轉換,如果要生成一個xml文件或者從一個xml讀取呢

          # re: XStream兩分鐘教程(譯)  回復  更多評論   

          2007-05-09 09:44 by qiyadeng
          讀:
          Reader reader = new FileReader(persistFile);
          Object object = (Object)xStream.fromXML(reader);
          寫:
          FileWriter writer = new FileWriter(persistFile);
          xStream.toXML(object,writer);

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 131, comments - 12, trackbacks - 0, articles - 32

          Copyright © yukui

          主站蜘蛛池模板: 平江县| 石楼县| 澳门| 太湖县| 弥渡县| 都江堰市| 太仆寺旗| 邵阳市| 蒲江县| 海口市| 霍林郭勒市| 商南县| 吉木乃县| 晋中市| 东辽县| 保定市| 临沧市| 望城县| 新民市| 临夏市| 鹿邑县| 榆社县| 垫江县| 黄浦区| 萨迦县| 青冈县| 昌宁县| 涿州市| 民县| 留坝县| 嫩江县| 西峡县| 巫溪县| 望都县| 张家港市| 应城市| 光山县| 罗山县| 靖安县| 招远市| 江陵县|