用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); 
        } 
}

 

转载于:https://www.cnblogs.com/101key/archive/2013/06/07/3123318.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值