我需要将XML数据转换为Java对象。将这个XML数据转换为对象最好的做法是什么?将XML转换为Java对象的最佳做法是什么?
想法是通过Web服务(它不使用WSDL,只是HTTP GET查询,所以我不能使用任何框架)获取数据,并且答案是XML。处理这种情况的最佳做法是什么?
我需要将XML数据转换为Java对象。将这个XML数据转换为对象最好的做法是什么?将XML转换为Java对象的最佳做法是什么?
想法是通过Web服务(它不使用WSDL,只是HTTP GET查询,所以我不能使用任何框架)获取数据,并且答案是XML。处理这种情况的最佳做法是什么?
检出:http://bdoughan.blogspot.com/2010/07/jaxb-xml -binding-standard.html – 2011-04-01 21:49:28
另一种选择是SAX解析器。它是程序 - 即访问者模式 - 但如果xml相当轻量级(甚至中等重量),我发现它对此非常有用。
我已经使用并会继续使用JDOM - > www.jdom.org
我用XStream的为好,它很容易使用和定制。您可以添加自己的自定义转换器,这对我来说非常方便...
我在MQ模块中使用了JIBX。它工作得很好。 Ant配置很简单。使用Xsd2Jibx转换器从XML模式生成绑定文件和Java Bean。编组和取消编组允许指定字符集参数。在我的项目中处理自定义字符集非常有用。但是我在绑定编译器中发现了一个问题。如果Java bean具有更长的路径名称,它将生成文件名较长的类文件,这将在Windows XP中引起问题(它具有最大文件长度限制)。
我还没有使用过其他的API。所以我不想与其他人比较。如果您决定使用JIBX,我希望这会有所帮助。
更多详细信息,请参阅JIBX website
JAXB API,它涉及在Java中(在建)。
Metro实现与Java SE 6捆绑在一起。还有EclipseLink JAXB(MOXy)和Apache JaxMe。 – 2011-04-01 21:51:34
所以很惊讶更多的人没有提到Jibx。令人惊叹的lib和我认为使用比Jaxb简单得多。性能也是fab!
在这里也可以考虑Apache的bitwixt和简单的框架,XML
还有一个无模式的方法,如果你甚至不希望使用schema..http://onjava.com/pub/ a/onjava/2007/09/07/schema-less-java-xml-data-binding -with-vtd-xml.html – 2010-05-12 19:45:28