2010-08-16 70 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