zoukankan      html  css  js  c++  java
  • 用Apache Commons Betwixt 在XML与Java对象之间相互转换

    项目地址:http://commons.apache.org/proper/commons-betwixt/

    /** 
    * XML转Java 
    */
     
    public class ReadExampleApp { 

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

                    //创建一个读取xml文件的流 
                    StringReader xmlReader = new StringReader( 
                                    "<?xml version='1.0' ?><person><age>25</age><name>James Smith</name></person>"); 

                    //创建一个BeanReader实例,相当于转换器 
                    BeanReader beanReader = new BeanReader(); 

                    //配置BeanReader实例 
                    beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false); 
                    beanReader.getBindingConfiguration().setMapIDs(false); //不自动生成ID 

                    //注册要转换对象的类,并指定根节点名称 
                    beanReader.registerBeanClass("person", PersonBean.class); 

                    //将XML解析Java Object 
                    PersonBean person = (PersonBean) beanReader.parse(xmlReader); 

                    //在控制台输出对象 
                    System.out.println(person); 
            } 
    }

    /** 
    * 将java对象转换为xml,并输出到文件 
    */
     
    public class WriteExampleApp { 

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

                    //创建一个输出流,将用来输出Java转换的XML文件 
                    FileWriter outputWriter = new FileWriter("c:\\123.txt"); 

                    //输出XML的文件头 
                    outputWriter.write("<?xml version='1.0' ?>"); 

                    //创建一个BeanWriter实例,并将BeanWriter的输出重定向到指定的输出流 
                    BeanWriter beanWriter = new BeanWriter(outputWriter); 

                    //配置BeanWriter对象 
                    beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false); 
                    beanWriter.getBindingConfiguration().setMapIDs(false); 
                    beanWriter.enablePrettyPrint(); 

                    Person person = new Person("XXX", 21); 
                    beanWriter.write(person); 

                    //关闭输出流 
                    outputWriter.close(); 
            } 
    }

    /** 
    * 将Java对象转换为XML,并获取其字符串 

    */
     
    public class WriteStringExampleApp { 
            public static final void main(String [] args) throws Exception { 
                    String reslutXml; 

                    //创建一个输出流,将用来输出Java转换的XML文件 
                    StringWriter outputWriter = new StringWriter(); 

                    //输出XML的文件头 
                    outputWriter.write("<?xml version='1.0' ?>"); 

                    //创建一个BeanWriter实例,并将BeanWriter的输出重定向到指定的输出流 
                    BeanWriter beanWriter = new BeanWriter(outputWriter); 

                    //配置BeanWriter对象 
                    beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false); 
                    beanWriter.getBindingConfiguration().setMapIDs(false); 
                    beanWriter.enablePrettyPrint(); 

                    Person person = new Person("xxx", 21); 
                    beanWriter.write(person); 

                    reslutXml = outputWriter.toString(); 

                    //关闭输出流 
                    outputWriter.close(); 

                    //控制台输出转换结果的字符串 
                    System.out.println(reslutXml); 
            } 
    }

    李小家
  • 相关阅读:
    62、solidity环境搭建、编译及编写合约-3——2020年07月12日12:55:51
    61、solidity编程语言类型-2——2020年07月12日12:26:21
    60、solidity编程语言了解、实践-1——2020年07月12日12:01:12
    C#windows桌面应用小程序制作——大文件数据分段解析存储
    关于如何使用ehcarts2加载svg矢量地图并自定义县级内部乡镇轮廓
    webstorm2016.3注册码,License server更新方式,webstorm2017.1版本可用
    使用nodeValue获取值与a标签默认跳转的冲突问题
    前端知识体系目录
    sweetalert弹窗的使用
    background-size的应用情景:当给出的背景图片大于实际网页需要布局的图片大小时
  • 原文地址:https://www.cnblogs.com/101key/p/3123318.html
Copyright © 2011-2022 走看看