将XML转换为Java对象的最佳做法是什么?

时间:2010-05-12 19:28:15

标签: java xml object

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

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

10 个答案:

答案 0 :(得分:12)

答案 1 :(得分:10)

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)

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

答案 4 :(得分:2)

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

答案 5 :(得分:2)

Java内置的JAXB API(内置)。

答案 6 :(得分:1)

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

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

更多详情,请参阅JIBX website

答案 7 :(得分:0)

我也使用过XStream,它易于使用和自定义。你可以添加自己的自定义转换器,这对我来说非常方便......

答案 8 :(得分:0)

令人惊讶的是,更多人没有提到Jibx。令人惊讶的lib和我认为使用比Jaxb更简单。表现也很棒!

答案 9 :(得分:0)

为此你也可以考虑apache的bitwixt和xml的简单框架