2010-08-16 73 views
5

我正在向我的Java應用程序寫入XML文件的導入功能。我正在使用XOM解析XML文件。解析XML的代碼不容易理解,它是一些硬編碼.getChild(3)等等。與聲明性XML文檔相比,很難遵循代碼。是否有解析XML到Java對象的聲明方式?

沒有一種更可維護的方式來解析XML文檔到Java對象嗎?我希望以更具說明性的方式使用它,我可以指定哪些標籤對應於哪些Java類。

回答

0

我終於找到了XStream,它很容易使用,並以聲明的方式解析XML。

+0

請查閱:http://bdoughan.blogspot.com/2010/10/how-does-jaxb-compare-to-xstream.html – 2010-11-16 16:47:53

1
+1

Digester仍然是一個活躍的項目?自2009年1月以來,我沒有在他們的網站上看到任何更新。 – 2010-08-16 20:10:24

+0

Digester穩定,活躍度較低但仍保持不變。 – 2011-07-24 21:31:40

3

看看JAX/B - 非常簡單的基於註釋的方法。這是一個標準的Java API。

有一些工具可以從XSD或示例XML文件中生成Annotated Java類。我描述了我在my blog的使用

+0

謝謝,我讀過你的博客文章。只需右鍵單擊XML文件,然後生成XSD,就必須有一個出色的IDE。我在Eclipse中找不到這個選項。我必須閱讀關於JAXB。 – Jonas 2010-08-16 20:08:35

+0

查看添加到Eclipse Dali項目中的JAXB支持:http://www.eclipse.org/webtools/releases/3.2.0/NewAndNoteworthy/jpa.php – 2010-08-16 20:14:21

1

同意JAXB (JSR-222)是最好的解決方案。請注意,JAXB是一個規範意味着你有實現的選擇:

標準JAXB允許用戶通過註釋的方式來指定映射,MOXy JAXB還允許您指定通過XML元數據:

如果你想有一個維護的解決方案,你需要打破在幾乎所有的XML綁定解決方案中的XML元素之間的一個一對一的關係,並使用XPath在莫西使用的基於映射:

2

我真的很喜歡Simple將XML轉換爲Java。

+0

檢出:http://bdoughan.blogspot.com /2010/10/how-does-jaxb-compare-to-simple.html – 2010-11-16 16:48:25

1

Simple XML框架對字段和方法聲明以及類定義使用註釋來將XML映射到Java並返回。它的重量比JAXB輕很多倍(這導致了大量的依賴關係)。實際上它根本沒有外部依賴性。而且它也更快。我多次嘗試JAXB,但發現註解和功能笨拙和麻煩。檢查出Tutorial