<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 揚州夢 閱讀(287) 評論(0)  編輯  收藏 所屬分類: java

    統計

    主站蜘蛛池模板: 国产日韩精品无码区免费专区国产| 国产成人精品日本亚洲专| 激情婷婷成人亚洲综合| 久久久久免费看黄A片APP| 亚洲av无码片在线观看| 日本妇人成熟免费中文字幕| 亚洲午夜电影在线观看高清| 99久久综合精品免费| 亚洲一区影音先锋色资源| 亚洲视频免费一区| 国产成人高清亚洲一区91| 女人张开腿给人桶免费视频| 久久久久精品国产亚洲AV无码| 亚洲免费福利在线视频| 亚洲色大成网站www尤物| 四虎免费大片aⅴ入口| 日本亚洲欧美色视频在线播放 | 免费国产黄网站在线观看| 91亚洲一区二区在线观看不卡| 国产成人精品免费视频大全麻豆| 亚洲国产午夜精品理论片| 成年人网站在线免费观看| 国产亚洲欧美日韩亚洲中文色| 波多野结衣中文一区二区免费 | 久久精品国产亚洲AV香蕉| 国产成人精品免费午夜app| 亚洲色大成网站www尤物| 亚洲精品国自产拍在线观看| www成人免费观看网站| 亚洲天堂男人天堂| 免费看又爽又黄禁片视频1000| 直接进入免费看黄的网站| 亚洲AV永久无码精品成人| 国产99视频精品免费观看7| 牛牛在线精品免费视频观看| 亚洲无人区一区二区三区| 最近最新高清免费中文字幕| 久久久久亚洲精品无码网址色欲 | 天天摸天天碰成人免费视频| 男女啪啪免费体验区| 亚洲AV无码第一区二区三区|