我正在向我的Java應用程序寫入XML文件的導入功能。我正在使用XOM解析XML文件。解析XML的代碼不容易理解,它是一些硬編碼.getChild(3)
等等。與聲明性XML文檔相比,很難遵循代碼。是否有解析XML到Java對象的聲明方式?
沒有一種更可維護的方式來解析XML文檔到Java對象嗎?我希望以更具說明性的方式使用它,我可以指定哪些標籤對應於哪些Java類。
我正在向我的Java應用程序寫入XML文件的導入功能。我正在使用XOM解析XML文件。解析XML的代碼不容易理解,它是一些硬編碼.getChild(3)
等等。與聲明性XML文檔相比,很難遵循代碼。是否有解析XML到Java對象的聲明方式?
沒有一種更可維護的方式來解析XML文檔到Java對象嗎?我希望以更具說明性的方式使用它,我可以指定哪些標籤對應於哪些Java類。
我終於找到了XStream,它很容易使用,並以聲明的方式解析XML。
Digester仍然是一個活躍的項目?自2009年1月以來,我沒有在他們的網站上看到任何更新。 – 2010-08-16 20:10:24
Digester穩定,活躍度較低但仍保持不變。 – 2011-07-24 21:31:40
看看JAX/B - 非常簡單的基於註釋的方法。這是一個標準的Java API。
有一些工具可以從XSD或示例XML文件中生成Annotated Java類。我描述了我在my blog的使用
謝謝,我讀過你的博客文章。只需右鍵單擊XML文件,然後生成XSD,就必須有一個出色的IDE。我在Eclipse中找不到這個選項。我必須閱讀關於JAXB。 – Jonas 2010-08-16 20:08:35
查看添加到Eclipse Dali項目中的JAXB支持:http://www.eclipse.org/webtools/releases/3.2.0/NewAndNoteworthy/jpa.php – 2010-08-16 20:14:21
同意JAXB (JSR-222)是最好的解決方案。請注意,JAXB是一個規範意味着你有實現的選擇:
標準JAXB允許用戶通過註釋的方式來指定映射,MOXy JAXB還允許您指定通過XML元數據:
如果你想有一個維護的解決方案,你需要打破在幾乎所有的XML綁定解決方案中的XML元素之間的一個一對一的關係,並使用XPath在莫西使用的基於映射:
我真的很喜歡Simple將XML轉換爲Java。
檢出:http://bdoughan.blogspot.com /2010/10/how-does-jaxb-compare-to-simple.html – 2010-11-16 16:48:25
請查閱:http://bdoughan.blogspot.com/2010/10/how-does-jaxb-compare-to-xstream.html – 2010-11-16 16:47:53