`
hacker_zxf
  • 浏览: 148751 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

XStream笔记

    博客分类:
  • XML
阅读更多
   XStream直接使用流的形式读取XML,并且使用现有的XML解析框架,如DOM等,对XML进行解析后,生成JAVA对象。
    默认解析器支持对普通对象的解析,如String ,Date,Collections等,如果需要解析特殊的对象,可以对其Converter接口进行扩展。
    详细看XStream官方网站http://xstream.codehaus.org/architecture.html。
   
    例子:


public class User {

    String  name;
    String  age;
    Address address;

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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


public class Address {

    String code;
    String street;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

}



    public class XstreamTest {

    XStream xstream;

    public void test() {
        // xstream = new XStream(); // XML转对象时报错 Exception in thread "main" java.lang.IllegalArgumentException: XPP3
        // pull parser library not present. Specify another driver. For example: new
        // XStream(new DomDriver())
        xstream = new XStream(new DomDriver());
        xstream.alias("User", User.class);
        xstream.alias("Address", Address.class);
    }

    public void objToXml() {
        User user = new User();
        user.setName("yaoming");
        user.setAge("30");
        Address address = new Address();
        address.setCode("011101");
        address.setStreet("new york");
        user.setAddress(address);
        System.out.println(xstream.toXML(user));
    }

    public void xmlToObj() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("<User>");
        buffer.append("<name>Tracy McGrady</name>");
        buffer.append("<age>29</age>");
        buffer.append("<address>");
        buffer.append("<code>011101</code>");
        buffer.append("<street>new york</street>");
        buffer.append("</address>");
        buffer.append("</User>");
        User user = (User) xstream.fromXML(buffer.toString());
        System.out.println(user.getName());
    }

    public static void main(String... strings) {
        XstreamTest test = new XstreamTest();
        test.test();
        test.objToXml();
        test.xmlToObj();
    }
}


以上是最基本的例子;


    xstream还有其他实用的方法,如不想展现某Collection类型的tag或者忽略掉它,可以使用addImplicitCollection(),本例子里没有用到Collection对象,就不举例子了。还有其他的用法,可以参考API。

   使用Converter接口来实现对非普通对象的解析

  
  public class Child {

    String name;

    public String getName() {
        return name;
    }

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

修改方法:

 public void objToXml() {
        User user = new User();
        user.setName("yaoming");
        user.setAge("30");
        Address address = new Address();
        address.setCode("011101");
        address.setStreet("new york");
        user.setAddress(address);
        Child child = new Child();
        child.setName("baobao");
        user.setChild(child);
        xstream.registerConverter(new ChildValueConverter());
        System.out.println(xstream.toXML(user));
    }
  


  输出:
   <User>
  <name>yaoming</name>
  <age>30</age>
  <address>
    <code>011101</code>
    <street>new york</street>
  </address>
  <child>baobao</child>
</User>
分享到:
评论

相关推荐

    XStream笔计rar.rar

    《XStream笔记——深入解析与应用》 XStream是一款强大的Java库,用于将对象序列化为XML,反之亦然。它的主要优点在于简洁的API和易于理解的转换过程,使得XML与Java对象之间的绑定变得非常直观。在本篇笔记中,...

    最齐全的xstream1.4.8.jar

    最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...

    xstream-1.4.15.jar

    XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...

    xstream最新版 - xstream-1.4.18.jar

    xstream最新版jar包

    xstream-1.4.2.jar

    《XStream详解与应用》 XStream是一款强大的Java库,用于将对象序列化为XML,同时也能从XML数据中反序列化回对象。在标题"xstream-1.4.2.jar"中,我们看到的是XStream的一个特定版本——1.4.2。这个版本包含了...

    com.thoughtworks.xstream.XStream操作XML和java对象的一些用法

    XStream库提供了一个简单、直观的方式来实现这种转换,使得XML序列化和反序列化变得非常方便。本篇将详细介绍XStream如何处理XML与Java对象的相互转换,以及如何处理List、Map等集合类型的数据。 首先,XStream是一...

    xstream1.4.15.JAR

    XStream 是一个流行的 Java 库,用于将对象序列化为 XML 和从 XML 反序列化回对象。这个库广泛应用于各种 Java 应用程序,尤其是那些需要在网络间传输或存储对象数据的情况。在标题提到的 "xstream1.4.15.JAR" 文件...

    xStream完整Jar包

    **XStream 概述** XStream 是一个 Java 库,用于将对象序列化为 XML,以及从 XML 反序列化回对象。它提供了一种简单而直观的方式来处理 XML 数据,使得 XML 文档与 Java 对象之间的转换变得轻而易举。这个“xStream...

    xstream相关的jar包

    XStream是一款强大的Java库,用于将Java对象序列化为XML,反之亦然。这个库的主要优点在于其简单易用的API和对复杂对象图的处理能力。在标题中提到的"Xstream相关的jar包",是指为了使用XStream库,需要引入的依赖...

    xstream-1.4.5.jar

    xstream xstream-1.4.5.jar

    Java用xStream拼接xml

    当需要将数据转换为XML格式以便于传输或处理时,工具如xStream就显得尤为重要。Java中的xStream库提供了一个简单易用的方式来将Java对象序列化为XML,反之亦然,即反序列化XML回Java对象。 **xStream简介** xStream...

    xstream-1.3.1.zip

    《XStream 1.3.1:Java对象到XML的高效转换工具》 XStream是一款强大的Java库,它能够将Java对象序列化为XML,并能从XML反序列化回Java对象。这个“xstream-1.3.1.zip”文件包含了一个名为“xstream-1.3.1.jar”的...

    xstream-1.4.8最齐全的jar包

    XStream是一款强大的Java库,主要用于将Java对象序列化为XML,以及将XML反序列化回Java对象。在Java开发中,这种能力对于数据持久化、网络传输或配置存储等场景非常有用。标题中的"xstream-1.4.8最齐全的jar包"表明...

    xstream解析依赖包

    《XStream解析依赖包详解》 在Java开发中,数据序列化是一个不可或缺的环节,它使得对象的状态可以被保存和恢复。XStream是一款强大的Java库,用于将Java对象转换为XML,反之亦然,极大地简化了序列化和反序列化的...

    xstream-1.4.11-API文档-中文版.zip

    赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...

    xstream-1.4.20.jar

    xstream-1.4.20.jar

    xstream-1.4.19.jar

    xstream-1.4.19.jar

    XStream 1.4.11 jar包

    **XStream 1.4.11 jar包详解** XStream 是一个强大的 Java 库,它提供了一种简单且高效的方式来序列化和反序列化 Java 对象为 XML,反之亦然。这个工具库的设计目标是使得 XML 和 Java 对象之间的转换变得极其简单...

    Oracle Database XStream Guide 11g Release 2 (11.2)-302

    Oracle Database XStream Guide 11g Release 2 (11.2)-302 Oracle Database XStream 是 Oracle 公司推出的一个数据捕获和事件处理工具,旨在帮助用户实时捕获和处理数据库中的数据变化。下面是 Oracle Database ...

    XStream简单应用实例

    **XStream简介** XStream是一款强大的Java库,用于将Java对象序列化为XML,反之亦然。它由Joe Walnes创建,提供了一种简洁而直观的方式来处理对象与XML之间的转换。XStream的核心理念是通过简单的API,使得XML绑定...

Global site tag (gtag.js) - Google Analytics