<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  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品无码高潮喷水A片软| 可以免费看黄的网站| 亚洲色欲色欲www在线播放| 亚洲熟妇无码乱子AV电影| 国产三级电影免费观看| 无码国产精品一区二区免费式直播| 国产免费久久精品99久久| 亚洲AV无码片一区二区三区 | 亚洲an日韩专区在线| 国产亚洲色婷婷久久99精品| 日韩精品免费一区二区三区| 91精品视频免费| 污污网站18禁在线永久免费观看| 亚洲五月午夜免费在线视频| 美景之屋4在线未删减免费| 最新亚洲春色Av无码专区| 亚洲国产视频网站| 久久久久亚洲av无码专区喷水| 亚洲人成色7777在线观看不卡| 精品久久久久久久免费人妻| 国国内清清草原免费视频99| 91嫩草免费国产永久入口| 久久国产色AV免费看| 99精品一区二区免费视频| 日本在线免费播放| 久久久国产精品福利免费| 中国国产高清免费av片| 国产精品成人69XXX免费视频| 一级免费黄色毛片| 亚洲天堂免费在线视频| 国产精品综合专区中文字幕免费播放 | 亚洲18在线天美| 亚洲婷婷天堂在线综合| 亚洲国产品综合人成综合网站| 亚洲神级电影国语版| 亚洲人成在线精品| 亚洲永久网址在线观看| 亚洲AV色无码乱码在线观看 | 国产一区二区三区免费看| 午夜国产羞羞视频免费网站| 免费人成视频x8x8入口|