2010-05-12 112 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

相關問題