2010-05-12 116 views
13

我需要将XML数据转换为Java对象。将这个XML数据转换为对象最好的做法是什么?将XML转换为Java对象的最佳做法是什么?

想法是通过Web服务(它不使用WSDL,只是HTTP GET查询,所以我不能使用任何框架)获取数据,并且答案是XML。处理这种情况的最佳做法是什么?

+0

还有一个无模式的方法,如果你甚至不希望使用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

回答

10

看看XStream。它可能不是最快的,但它是Java中用户友好和直接的转换器之一,特别是如果你的模型不复杂。

+0

+1好的答案,它不是一个标准的本体,但它比JAXB更能维护我的经验。 – maerics 2010-05-12 21:52:25

+2

查看:http://bdoughan.blogspot.com/2010/10/how-does-jaxb-compare-to-xstream.html – 2011-04-01 21:50:19

+0

这可以用来解析html吗?它容错吗?谢谢! – trillions 2012-12-08 23:12:31

2

另一种选择是SAX解析器。它是程序 - 即访问者模式 - 但如果xml相当轻量级(甚至中等重量),我发现它对此非常有用。

4

对于JMS项目,我们是在TextMessages(字符串属性)中嵌入的编组和解组(从java到xml和xml到java)。我们尝试了JAXB,JibxXMLBeans。我们发现XMLBeans对我们来说最合适。快速,易于配置,良好的文档以及简单的Maven集成。

+0

我已经使用JaxB,XStream和XMLBeans,他们都与他们有好和坏。Jaxb认为它是平台的一部分,XStream比它的速度快,但如果你的XML非常复杂,那么XMLBeans就是要走的路。 – mezmo 2010-05-13 14:25:10

3

我已经使用并会继续使用JDOM - > www.jdom.org

0

我用XStream的为好,它很容易使用和定制。您可以添加自己的自定义转换器,这对我来说非常方便...

1

我在MQ模块中使用了JIBX。它工作得很好。 Ant配置很简单。使用Xsd2Jibx转换器从XML模式生成绑定文件和Java Bean。编组和取消编组允许指定字符集参数。在我的项目中处理自定义字符集非常有用。但是我在绑定编译器中发现了一个问题。如果Java bean具有更长的路径名称,它将生成文件名较长的类文件,这将在Windows XP中引起问题(它具有最大文件长度限制)。

我还没有使用过其他的API。所以我不想与其他人比较。如果您决定使用JIBX,我希望这会有所帮助。

更多详细信息,请参阅JIBX website

2

JAXB API,它涉及在Java中(在建)。

+1

Metro实现与Java SE 6捆绑在一起。还有EclipseLink JAXB(MOXy)和Apache JaxMe。 – 2011-04-01 21:51:34

0

所以很惊讶更多的人没有提到Jibx。令人惊叹的lib和我认为使用比Jaxb简单得多。性能也是fab!

0

在这里也可以考虑Apache的bitwixt和简单的框架,XML

相关问题