7

可能重复:
在 Java 应用程序中读取 XML 文件的最佳/最简单方法是什么?

如何将 XML 转换为 POJO,反之亦然?axis2 是否提供该功能?或者java是否已经有内置功能?或任何其他框架?谢谢

4

5 回答 5

7

我真的鼓励您使用JAXB

JAXB 是一个注释框架,它将 Java 类映射到 XML 和 XML 模式(反之亦然)。它非常有用,因为您可以使用更接近您正在建模的领域的真实 Java 对象,而不是与 XML 文档的抽象表示进行交互。

如果您还需要构建一个 RESTful Web 服务,通过 JAXB 将 Java 对象自动序列化/反序列化为 XML,我还建议您阅读本书:

带有 JAX-RS 的 Oreilly RESTful Java -(第 6 章。JAX-RS 内容处理程序)

于 2012-06-27T07:58:29.987 回答
6

如果您需要一个现成的框架,请查看xstream

于 2012-06-27T07:49:53.730 回答
2

有多种框架:Jaxb、XStream、JiBX 等。

可能对您有所帮助的教程:

http://thomassundberg.wordpress.com/2010/01/19/how-to-convert-a-pojo-to-xml-with-jaxb/

http://numberformat.wordpress.com/2009/11/01/using-jaxb-to-convert-between-xml-and-pojos/

http://soadev.blogspot.com/2011/07/jaxb-converting-pojo-to-xml-and-vice.html

http://jibx.sourceforge.net/binding/tutorial/binding-tutorial.html

这里有一篇文章,解释了如何仅使用 XPath 来完成。

还可以在这里查看关于 SO 的类似讨论。

于 2012-06-27T07:51:27.623 回答
1

您可以尝试 JAXB http://jaxb.java.net/或 XMLBeans http://xmlbeans.apache.org/

于 2012-06-27T07:54:02.313 回答
1

一个简单的版本使用XMLEncoderandXMLDecoder类内置在 java >=1.4 中。


一个简单的例子

用法很简单,大致如下

XMLEncoder xmlEncoder = new XMLEncoder( outputStream );
xmlEncoder.writeObject( myObject );

会给你类似的东西

<?xml version="1.0" encoding="UTF-8"?> 
<java> 
 <object class="your.class.Name"> 
  <void property="fieldName"> 
   <boolean>true</boolean> 
  </void> 
  etc. etc. etc. 
 </object> 
</java> 

读回你简单做的对象

XMLDecoder xmlDecoder = new XMLDecoder( inputStream );
MyClass thing = (MyClass) xmlDecoder.readObject();

这是我在谷歌上找到的一个随机教程:
http ://www.avajava.com/tutorials/lessons/how-do-i-write-a-javabean-to-an-xml-file-using-xmlencoder.html

这种方法不是非常灵活,但它是内置的,无需配置且非常可预测。可能是一个很好的起点。

一些附加说明:

这是一个概述 xml 格式的文档:http: //java.sun.com/products/jfc/tsc/articles/persistence3/

这是我刚刚找到的另一个链接,它解释了如何从xmlencoderjaxb(内置于 jdk >= 1.6)获得更大的灵活性: http ://en.newinstance.it/2010/08/05/javabeans-to-xml -没有图书馆/

于 2012-06-27T08:56:11.780 回答