如何将XML转换为POJO,反之亦然?Axis2是否提供此功能?还是Java已经具备了内置能力?或者使用其他框架?谢谢。
如何将XML转换为POJO,反之亦然?Axis2是否提供此功能?还是Java已经具备了内置能力?或者使用其他框架?谢谢。
Java >=1.4版本内置了一个简单的版本,使用XMLEncoder
和XMLDecoder
类。
使用方法非常简单,如下所示:
XMLEncoder xmlEncoder = new XMLEncoder( outputStream );
xmlEncoder.writeObject( myObject );
<?xml version="1.0" encoding="UTF-8"?>
<java>
<object class="your.class.Name">
<void property="fieldName">
<boolean>true</boolean>
</void>
etc. etc. etc.
</object>
</java>
要读取对象,只需执行以下操作
XMLDecoder xmlDecoder = new XMLDecoder( inputStream );
MyClass thing = (MyClass) xmlDecoder.readObject();
这是我在谷歌上找到的随机教程:
http://www.avajava.com/tutorials/lessons/how-do-i-write-a-javabean-to-an-xml-file-using-xmlencoder.html
这种方法并不是非常灵活,但它是内置的、无需配置且非常可预测的。可能是一个很好的起点。
这里有一个概述XML格式的文档:http://java.sun.com/products/jfc/tsc/articles/persistence3/
这里是我刚找到的另一个链接,它解释了如何从XMLencoder
转移到JAXB(内置于JDK>=1.6)以获得更多的灵活性:http://en.newinstance.it/2010/08/05/javabeans-to-xml-with-no-libraries/
http://thomassundberg.wordpress.com/2010/01/19/how-to-convert-a-pojo-to-xml-with-jaxb/
http://numberformat.wordpress.com/2009/11/01/using-jaxb-to-convert-between-xml-and-pojos/
http://soadev.blogspot.com/2011/07/jaxb-converting-pojo-to-xml-and-vice.html
http://jibx.sourceforge.net/binding/tutorial/binding-tutorial.html
这里有一篇文章,介绍只使用XPath如何实现。