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

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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲国产精品久久久久秋霞小 | 国产成人免费片在线视频观看| 亚洲人成网站在线播放影院在线| 一级特黄录像免费播放肥| 亚洲国产精品成人| 一个人免费观看日本www视频| 亚洲第一视频在线观看免费| 一级特黄a大片免费| 亚洲一区二区女搞男| 成在线人视频免费视频 | 亚洲春黄在线观看| 99久久99这里只有免费费精品| 亚洲国产精品张柏芝在线观看| 999久久久免费精品国产| 亚洲精品理论电影在线观看| 国产成人在线免费观看| 一级黄色片免费观看| 亚洲综合精品香蕉久久网| 中文无码成人免费视频在线观看 | 野花香在线视频免费观看大全| 亚洲国产精品线在线观看| 免费阿v网站在线观看g| 亚洲AV无码一区二区三区网址| jizzjizz亚洲| 无码日韩精品一区二区三区免费 | 狼人大香伊蕉国产WWW亚洲| 久久精品亚洲乱码伦伦中文| 亚洲成人免费在线| 亚洲色偷偷偷综合网| 精品国产人成亚洲区| 永久黄色免费网站| 青青久久精品国产免费看| 亚洲av日韩av不卡在线观看| 18禁网站免费无遮挡无码中文| 白白色免费在线视频| 日本久久久久亚洲中字幕| 国产精品成人无码免费| 国产成人精品免费久久久久| 亚洲人成网站免费播放| 久久久久久亚洲精品中文字幕| 日韩免费视频播播|