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

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

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

    隨筆-6  評論-1  文章-0  trackbacks-0
    XStream 是一個輕量級的、簡單易用的開放源代碼Java™庫,用于將 Java 對象序列化為 XML 或者再轉換回來

    XStream 對象相當Java對象和XML之間的轉換器,轉換過程是雙向的。創建XSteam對象的方式很簡單,只需要new XStream()即可。
    Java 到xml,用toXML()方法。
    Xml到Java,用fromXML()方法。

    在沒有任何設置默認情況下,java到xml的映射,是java成員名對應xml的元素名,java類的全名對應xml根元素的名字。而實際中,往往是xml和java類都有了,要完成相互轉換,必須進行別名映射。
     
    XStream 的編碼:
    本身并沒有實現編碼,必須依靠java.io.Writer來實現輸出編碼的轉換。

    XStream 的常用方法
    xstream.omitField(mytest.class,"name");定義某一個屬性的值不進行xml序列化。
    xstream.alias("cat", Cat.class); 對某一個類進行別名定義
    xstream.aliasField("age",Cat.class, "mAge");對某一個類的屬性進行別名定義。
    xstream.useAttributeFor(String.class);對所有String類型的字段定義為屬性tag顯示
    xstream.useAttributeFor("name".String.class);對所有String類型的字段名成為name 定義為屬性tag顯示

    package com.ljh.bean;
    public class Address {
        private int id;
        private String addressName;
        public Address(){}
        public Address(int id, String addressName) {
             this.id= id;
             this.addressName= addressName;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
             this.id= id;
        }
        public String getAddressName() {
             return addressName;
        }
        public void setAddressName(String addressName) {
             this.addressName= addressName;
        }
    }

    package com.ljh.bean;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    public class Person {
        private int id;
        private String name;
        private int age;
        private String birthday;
        private List<Address> addresses = new ArrayList<Address>();
        private Date date = new Date();  
        public Person(int id, String name, int age,String birthday) {
             this.id= id;
             this.name= name;
             this.age= age;
             this.birthday= birthday;
        }
        public List<Address> getAddresses() {
             return addresses;
        }
        public void setAddresses(List<Address> addresses) {
             this.addresses= addresses;
        }
        public Date getDate() {
             return date;
        }
        public void setDate(Date date) {
             this.date= date;
        }
        public String getBirthday() {
             return birthday;
        }

        public void setBirthday(String birthday) {
             this.birthday= birthday;
        }
        public int getId() {
             return id;
        }
        public void setId(int id) {
             this.id= id;
        }
        public String getName() {
             return name;
        }
        public void setName(String name) {
             this.name= name;
        }
        public int getAge() {
             return age;
        }
        public void setAge(int age) {
             this.age= age;
        }
        public void add(Address address){
             addresses.add(address);
        }
    }

    package com.ljh.xstream;
    import java.io.PrintWriter;
    import com.ljh.bean.Address;
    import com.ljh.bean.Person;
    import com.thoughtworks.xstream.XStream;
    public class XStreamTest {
        public static void main(String[] args) throws Exception {
             Address address1 = new Address(1,"北京");
             Address address2 = new Address(2,"天津");
             Address address3 = new Address(3,"上海");
             Person p = new Person(1,"ljh",38,"2111-11-11 11:11");
             p.add(address1);
             p.add(address2);
             p.add(address3);
             XStream xstream = new XStream();
             //對某一個類進行別名定義
             xstream.alias("地址",Address.class);
             xstream.alias("聯系人",Person.class);
             //對某一個類的屬性進行別名定義
             xstream.aliasField("編號",Person.class, "id");
             xstream.aliasField("姓名",Person.class, "name");
             xstream.aliasField("年齡",Person.class, "age");
             xstream.aliasField("聯系方式",Person.class, "addresses");
             xstream.aliasField("編號",Address.class, "id");
             xstream.aliasField("名稱",Address.class, "addressName");
             xstream.aliasField("生日",Person.class, "birthday");
             //定義某一個屬性的值不進行xml序列化。
             xstream.omitField(Person.class,"date");
             //對id字段定義為屬性顯示
             xstream.useAttributeFor(Person.class,"id");
             xstream.useAttributeFor(Address.class,"id");
             //對所有String類型的字段名成為name 定義為屬性tag顯示
             //xstream.useAttributeFor("name".String.class);     
             xstream.toXML(p,new PrintWriter("c:\\person.xml","utf-8"));
        }
    }
    posted on 2012-03-31 11:01 gzakoa 閱讀(1777) 評論(1)  編輯  收藏 所屬分類: xml

    評論:
    # re: java對象與xml文件轉換[未登錄] 2015-09-21 22:36 | ccc
    bvc  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 边摸边吃奶边做爽免费视频99| 色婷五月综激情亚洲综合| 精品久久久久亚洲| 午夜电影免费观看| 亚洲欧美日韩中文二区| 国产高清视频在线免费观看| 亚洲AV无码专区国产乱码不卡| 国产精品成人无码免费| 亚洲精品人成网线在线播放va| 白白国产永久免费视频| 蜜臀亚洲AV无码精品国产午夜.| av无码东京热亚洲男人的天堂| 成人a毛片视频免费看| 亚洲精品无码专区2| 中文字幕在线视频免费观看| 亚洲无av在线中文字幕| 无码专区AAAAAA免费视频| 亚洲精品亚洲人成在线观看麻豆| 黄色网址免费大全| 亚洲AⅤ男人的天堂在线观看 | 免费的黄色网页在线免费观看| 亚洲&#228;v永久无码精品天堂久久 | 国内外成人免费视频| 深夜免费在线视频| 国产亚洲一区二区手机在线观看| 久久久久久国产精品免费无码| 33333在线亚洲| 亚洲?V乱码久久精品蜜桃| a毛片免费在线观看| 亚洲国产美女精品久久| 天天天欲色欲色WWW免费| 老司机午夜免费视频| 亚洲成AV人在线观看天堂无码| 成人浮力影院免费看| 精品一区二区三区免费毛片| 亚洲成a人片77777kkkk| 成人激情免费视频| a级毛片毛片免费观看永久| 国产成人精品日本亚洲11| 亚洲午夜无码AV毛片久久| 日韩在线播放全免费|