`
阅读更多

xml文件内容:

<list>
  <storagePool>
    <name>isopool</name>
    <path>/vms/isos</path>
    <type>dir</type>
    <totalSize>4983</totalSize>
    <freeSize>4810</freeSize>
    <status>1</status>
  </storagePool>
  <storagePool>
    <name>defaultpool</name>
    <path>/vms/images</path>
    <type>dir</type>
    <totalSize>4983</totalSize>
    <freeSize>4771</freeSize>
    <status>1</status>
  </storagePool>
</list>

 

 //测试代码

public static void main(String[] args) throws IOException {

        //由XML转化成JavaBean
        String filePath = "E:\\杂乱代码\\store.xml";
        String xml = FileUtil.readFileContent(filePath);
        System.out.println(xml);
        XStream xstream = new XStream(new DomDriver());
        xstream.processAnnotations(H3CVMStoragePoolList.class);//必须把根目录注册进去
        H3CVMStoragePoolList h3CVMStoragePoolList = (H3CVMStoragePoolList) xstream.fromXML(xml);       
        for(H3CVMStoragePool temp : h3CVMStoragePoolList.getList())
        {
            System.out.println(temp.getName());
        }

 

       //由bean转化成xml的String

       H3CVolumAdd h3CVolumAdd = new H3CVolumAdd();
        h3CVolumAdd.setHostId(1124);
        h3CVolumAdd.setSpName("/df/df/df/df");
        h3CVolumAdd.setVolName("/fg/fg/fg");
        h3CVolumAdd.setBaseFile("/fgh/ghgfh");
        XStream xstream1 = new XStream(new DomDriver());

        //使用@XStreamOmitField对不生成xml的字段加注释
        //然后代码中使用xstream.autodetectAnnotations(true);就可以完成去掉属性了
        xstream1.autodetectAnnotations(true);
        String volAddXml = xstream1.toXML(h3CVolumAdd);
    
        System.out.println(volAddXml);

    }

 

@XStreamAlias("list")//这个注释必须有
public class H3CVMStoragePoolList implements Serializable{
    private static final long serialVersionUID = 1L;
   
    @XStreamImplicit(itemFieldName="storagePool")//这个注释必须有
    private ArrayList<H3CVMStoragePool> list;
    public ArrayList<H3CVMStoragePool> getList() {
        return list;
    }
    public void setList(ArrayList<H3CVMStoragePool> list) {
        this.list = list;
    }
}

 

@XStreamAlias("storagePool") //这个注释必须有
public class H3CVMStoragePool implements Serializable{
    private static final long serialVersionUID = 1L;
    String name;
    String path;
    String type;
    long totalSize;
    long freeSize;
    int status;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPath() {
        return path;
    }
    public void setPath(String path) {
        this.path = path;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public long getTotalSize() {
        return totalSize;
    }
    public void setTotalSize(long totalSize) {
        this.totalSize = totalSize;
    }
    public long getFreeSize() {
        return freeSize;
    }
    public void setFreeSize(long freeSize) {
        this.freeSize = freeSize;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
}

 

@XStreamAlias("volAddParameter")//这个注释信息必须有的
public class H3CVolumAdd {
    private long hostId;
    private String spName;
    private String  volName;
    private long capacity;
    private String format;
    //使用@XStreamOmitField对不生成xml的字段加注释
    //然后代码中使用xstream.autodetectAnnotations(true);就可以完成去掉属性了
    @XStreamOmitField
    private String baseFile;

    public long getHostId() {
        return hostId;
    }
    public void setHostId(long hostId) {
        this.hostId = hostId;
    }
    public String getSpName() {
        return spName;
    }
    public void setSpName(String spName) {
        this.spName = spName;
    }
    public String getVolName() {
        return volName;
    }
    public void setVolName(String volName) {
        this.volName = volName;
    }
    public long getCapacity() {
        return capacity;
    }
    public void setCapacity(long capacity) {
        this.capacity = capacity;
    }
    public String getFormat() {
        return format;
    }
    public void setFormat(String format) {
        this.format = format;
    }
    public String getBaseFile() {
        return baseFile;
    }
    public void setBaseFile(String baseFile) {
        this.baseFile = baseFile;
    }
}

分享到:
评论

相关推荐

    xstream方式解析xml文件

    xstream方式解析及生成xml文件

    xStream使用demo

    使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...

    XStream XML与Json转换

    XStream在运行时使用Java反射机制对要进行序列化的...XStream支持以方法调用的方式,或是Java 标注的方式指定别名。 XStream在进行数据类型转换时,使用系统缺省的类型转换器。同时,也支持用户自定义的类型转换器。

    xml解析及使用XStream实现javaBean与xml之间的转换

    一个小demo展示xml的两种解析方式和四种解析方法,以及使用XStream进行javaBean与xml、json之间的转换

    XStream使用方法总结附实例代码

    创建XSteam对象的方式很简单,只需要new XStream()即可。 Java到xml,用toXML()方法。 Xml到Java,用fromXML()方法。 在没有任何设置默认情况下,java到xml的映射,是java成员名对应xml的元素名,java类的全名对应...

    xstream-1.4.7

    XStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。 因此XML常用于数据交换、对象序列化. ...创建XSteam对象的方式很简单,只需要new XStream()即可。

    xstream-1.4.7.jar及源码;xml-pull-1.3.1.jar

    xstream-1.4.7.jar及源码;xml-pull-1.3.1.jar工具类,xstream-1.3.jar,XStream是一个Java...创建XSteam对象的方式很简单,只需要new XStream()即可。 Java到xml,用toXML()方法。 Xml到Java,用fromXML()方法。

    xstream 解析XML例程(android)

    * xstream 解析xml测试,本程序使用两种方式进行解析 * 分别为:注解方式与编程设置别名方式 * 注解方式代码更为简单,但对model需要用注解方式编写 * 编程设置别名方式代码稍复杂,但更灵活。 * @author 蜜我 ...

    基于Java的XML解析与反射设计模式.doc

    所以在读取大型xml时可以把 xstream与saxparser结合起来使用,用saxparser读取整个xml把核心数据部分让xstrea m来解析成javabean,这样既解决了大数据的问题又利用了xstream快速转化javabean的 优点。 为了利于多...

    SAXParser-用SAX读取大于100M的xml文件(java)

    压缩包里面有两个文件:SAX.java和SAXparse.java 用来解析大于100M的xml文件,SAX读取xml不同于DOM方式,DOM方式在解析xml前需要全部加载xml文件,当xml文件很大时,就会出现内存不足的问题,而SAX则是逐行读取xml...

    Step by step配置Oracle Stream

    这种技术可以将整个数据 库、数据库中的对象复制到另一数据库中,通过使用Stream 的技术,对归档日志的挖掘, 可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。 解析归档...

    Spring.3.x企业应用开发实战(完整版).part2

    14.2.3 使用XStream别名 14.2.4 XStream转换器 14.2.5 XStream注解 14.2.6 流化对象 14.2.7 持久化API 14.2.8 额外功能:处理JSON 14.3 其他常见O/X Mapping开源项目 14.3.1 JAXB 14.3.2 XMLBeans 14.3.3 Castor ...

    Spring3.x企业应用开发实战(完整版) part1

    14.2.3 使用XStream别名 14.2.4 XStream转换器 14.2.5 XStream注解 14.2.6 流化对象 14.2.7 持久化API 14.2.8 额外功能:处理JSON 14.3 其他常见O/X Mapping开源项目 14.3.1 JAXB 14.3.2 XMLBeans 14.3.3 Castor ...

    Open Flash Chart的应用(java),就是很炫的报表了

    注: Js里应用非常简单,有三种方式:直接加载json文件、通过url方式获取json格式数据、直接通过set方法设置参数值。这方面不再多说,下面主要说明java方面的应用,并针对struts2,至于servlet及struts1用法基本类似...

    warped-components:建立前端应用程序的一种自以为是的方式

    建立前端应用程序的一种自以为是的方式。 与配合良好。 安装 翘曲的组件需要React 16.8.3或更高版本 $ npm install --save warped-components react xstream 简而言之 该视图由React处理。 该状态由Redux处理。 ...

    微信公众平台应用开发:方法、技巧与案例.(机械工业.柳峰)

     4.3.2 XStream的使用 80  4.3.3 解析请求消息 83  4.3.4 响应消息对象转XML 85  4.4 案例:消息的接收与响应 88  4.4.1 开发准备工作 88  4.4.2 消息封装类 88  4.4.3 封装消息处理工具 89  4.4.4 ...

    memcached session manager 1.9.6 适用于 tomcat 8 各版本 (2017-03-21更新))

    de.javakaffee.web.msm.JavaSerializationTranscoderFactory de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory de.javakaffee.web.msm.serializer.xstream.XStreamTranscoderFactory de....

    memcached session manager 1.9.6 适用于 tomcat 8 各版本

    de.javakaffee.web.msm.serializer.xstream.XStreamTranscoderFactory de.javakaffee.web.msm.serializer.json.JSONTranscoderFactory de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory 各个序列化...

    Spring+Cloud+配置.pdf

    咕泡——Spring_Cloud_配置 Spring Cloud 配置 Java 中配置 字符类型配置 通用(内置) Java 系统属性(System#...结论:JDK 提供底层配置源的存储方式,没有具体抽象配置 API, 仅提供了一些零散的配置类型转换

Global site tag (gtag.js) - Google Analytics