我需要將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