<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    使用XStream進行POJO和xml之間的轉換

    XStream是一個開源項目,利用它可以方便的進行java對象和xml之間進行轉換,從而在測試,服務器設置等方面有很好的應用。

    先建兩個java對象

    1.Adress類

    package ?xml_chb;

    public ? class ?Adress? {
    ????
    private ?String?provice;
    ????
    private ?String?city;
    ????
    public ?String?getCity()? {
    ????????
    return ?city;
    ????}

    ????
    public ? void ?setCity(String?city)? {
    ????????
    this .city? = ?city;
    ????}

    ????
    public ?String?getProvice()? {
    ????????
    return ?provice;
    ????}

    ????
    public ? void ?setProvice(String?provice)? {
    ????????
    this .provice? = ?provice;
    ????}

    }

    ?2.Person類

    package ?xml_chb;

    public ? class ?Person? {

    ????
    private ?String?name = "" ;
    ????
    private ?String?sex = "" ;
    ????
    private ? int ?age;
    ????
    private ?String?mobile;
    ????
    private ?Adress?adress;
    ????
    ????
    public ? int ?getAge()? {
    ????????
    return ?age;
    ????}


    ????
    public ? void ?setAge( int ?age)? {
    ????????
    this .age? = ?age;
    ????}


    ????
    public ?String?getMobile()? {
    ????????
    return ?mobile;
    ????}


    ????
    public ? void ?setMobile(String?mobile)? {
    ????????
    this .mobile? = ?mobile;
    ????}


    ????
    public ?String?getName()? {
    ????????
    return ?name;
    ????}


    ????
    public ? void ?setName(String?name)? {
    ????????
    this .name? = ?name;
    ????}


    ????
    public ?String?getSex()? {
    ????????
    return ?sex;
    ????}


    ????
    public ? void ?setSex(String?sex)? {
    ????????
    this .sex? = ?sex;
    ????}


    ????
    public ?Adress?getAdress()? {
    ????????
    return ?adress;
    ????}


    ????
    public ? void ?setAdress(Adress?adress)? {
    ????????
    this .adress? = ?adress;
    ????}


    }

    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__chb .Person >
    ??
    < name > chb </ name >
    ??
    < sex > boy </ sex >
    ??
    < age > 22 </ age >
    ??
    < adress >
    ????
    < provice > Beijing </ provice >
    ????
    < city > Beijing </ city >
    ??
    </ adress >
    </ xml__chb.Person >

    我們可以看到,xml根結點是<xml_chb.Person>是類的全名,這樣看起來很繁瑣,我們可以使用別名來改進這一現象:

    ? xstream.alias("person",Person.class);
    ??strxml=xstream.toXML(person);
    ??System.out.println(strxml);

    輸出結果為:

    < person >
    ??
    < name > chb </ name >
    ??
    < sex > boy </ sex >
    ??
    < age > 22 </ age >
    ??
    < adress >
    ????
    < provice > Beijing </ provice >
    ????
    < city > Beijing </ city >
    ??
    </ adress >
    </ person >

    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);

    輸出結果:

    < person >
    ??
    < name > chb </ name >
    ??
    < sex > boy </ sex >
    ??
    < age > 22 </ age >
    ??
    < adress >
    ????
    < provice > Shanghai </ provice >
    ????
    < city > Shanghai </ city >
    ??
    </ adress >
    </ person >

    XStream的jar包可以直接到http://xstream.codehaus.org/下載,那里有一些簡單例子

    XStream是個很小的開源項目,所以它能實現的功能也就很有限,它只能包裝簡單類型的元素進行轉換,復雜類型的,比如Calendar,Date等類型則需要用戶自己實現Converter。

    還有,XStream對xml的操作并不好,比如想把一個子節點變成屬性就是一個很復雜的工作,但是大家平時用于測試的話,看看對象中到底存著什么數據,還是必要的。

    posted on 2006-09-25 23:33 揚州夢 閱讀(290) 評論(0)  編輯  收藏 所屬分類: java

    統計

    主站蜘蛛池模板: 很黄很黄的网站免费的| 精品亚洲视频在线| 99国产精品免费视频观看| 亚洲国产天堂久久久久久| 国产精品亚洲а∨无码播放不卡| 午夜视频在线在免费| 亚洲自偷自偷在线成人网站传媒 | 亚洲专区先锋影音| 一区二区三区观看免费中文视频在线播放 | 亚洲视频.com| 亚洲一级毛片免费在线观看| 亚洲欧洲日产国码在线观看| 精品成在人线AV无码免费看| 亚洲三级在线视频| 精品国产免费观看一区| 久久久久亚洲国产AV麻豆| 国产成人精品免费视频软件| 四虎一区二区成人免费影院网址| 中文字幕精品亚洲无线码二区| 你是我的城池营垒免费观看完整版| 亚洲国产精品无码专区| 最近高清中文字幕无吗免费看| 亚洲一区二区三区在线观看网站 | 曰曰鲁夜夜免费播放视频| 亚洲私人无码综合久久网| 成人永久免费福利视频网站| 日韩成人毛片高清视频免费看| 亚洲国产另类久久久精品小说| 精品女同一区二区三区免费站| 亚洲色欲色欱wwW在线| 亚洲成网777777国产精品| 免费A级毛片无码A∨| 亚洲中文字幕无码久久| 亚洲午夜AV无码专区在线播放 | 免费A级毛片在线播放不收费| aaa毛片视频免费观看| 亚洲免费福利视频| 久久久久亚洲av毛片大| 人成午夜免费视频在线观看| 女bbbbxxxx另类亚洲| 亚洲成人激情在线|