apache commons工具类之 betwixt

XML与Java对象之间相互转换。

package commons;

import java.beans.IntrospectionException;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;

import org.apache.commons.betwixt.io.BeanReader;
import org.apache.commons.betwixt.io.BeanWriter;
import org.xml.sax.SAXException;

public class TestBetwixt {

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

/**********************************************bean转化Xml*******************************************************/
// 先创建一个StringWriter,我们将把它写入为一个字符串
StringWriter outputWriter = new StringWriter();
// Betwixt在这里仅仅是将Bean写入为一个片断
// 所以如果要想完整的XML内容,我们应该写入头格式
outputWriter.write("<?xml version='1.0' encoding='UTF-8' ?>\n");
// 再创建一个BeanWriter,写入我们的outputWriter
BeanWriter beanWriter = new BeanWriter(outputWriter);
// 配置beanWriter
beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);
beanWriter.getBindingConfiguration().setMapIDs(false);
beanWriter.enablePrettyPrint();
// 如果这个地方不传入XML的根节点名,Betwixt将自己猜测是什么
// 但是让我们将例子Bean名作为根节点吧
try {
beanWriter.write("user", new User("csc", 21));
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IntrospectionException e) {
e.printStackTrace();
}finally{
//输出结果
System.out.println(outputWriter.toString());
// Betwixt写的是片断而不是一个文档,所以不要自动的关闭掉writers或者streams,
//但这里仅仅是一个例子,不会做更多事情,所以可以关掉
try {
outputWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}

/**********************************************bean转化Xml*******************************************************/

/**********************************************Xml转化bean*******************************************************/
// 先创建一个XML,由于这里仅是作为例子,所以我们硬编码了一段XML内容
StringReader xmlReader = new StringReader("<?xml version='1.0' encoding='UTF-8' ?><user><age>21</age><name>csc</name></user>");
// 在创建一个BeanReader
BeanReader beanReader = new BeanReader();
//配置reader
beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);
beanReader.getBindingConfiguration().setMapIDs(false);
//注册beans,以便betwixt知道XML将要被转化为一个什么Bean
try {
beanReader.registerBeanClass("user", User.class);
//现在我们对XML进行解析
User user = (User) beanReader.parse(xmlReader);
//输出结果
System.out.println(user);
} catch (IntrospectionException e) {
e.printStackTrace();
}

/**********************************************Xml转化bean*******************************************************/
}

}



运行结果

<?xml version='1.0' encoding='UTF-8' ?>
<user>
<age>21</age>
<name>csc</name>
</user>

User [name=csc, age=21]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值