XML转POJO和POJO转XML

7

1
https://dev59.com/2XRB5IYBdhLWcg3weXSX - d1e
5个回答

7
我真诚地建议您使用JAXB
JAXB是一个注解框架,将Java类映射到XML和XML模式(反之亦然)。它非常有用,因为您可以使用与您正在建模的域更接近的真实Java对象而不是与XML文档的抽象表示交互。
如果您还需要构建RESTful Web服务,并通过JAXB将Java对象自动序列化/反序列化成XML,我还建议您阅读这本书:
《Oreilly RESTful Java with JAX-RS》-(第6章JAX-RS内容处理程序)

它实际上是与JDK捆绑在一起的(不确定JRE是否也是如此)。这里有一个例子,它看起来非常容易使用:http://www.java2s.com/Code/Java/JDK-6/MarshalJavaobjecttoxmlandoutputtoconsole.htm - kritzikratzi
也许我忘记了我的评论,事实上更简单... 在不同的答案中发布。 - kritzikratzi
+1 for JAXB。由于它是一个标准(JSR-222),因此还有其他实现,例如EclipseLink MOXy:http://www.eclipse.org/eclipselink/moxy.php(我是技术负责人)。 - bdoughan

6
如果您需要一个现成的框架,可以参考xstream

2

Java >=1.4版本内置了一个简单的版本,使用XMLEncoderXMLDecoder类。


快速示例

使用方法非常简单,如下所示:

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/

这里是我刚找到的另一个链接,它解释了如何从XMLencoder转移到JAXB(内置于JDK>=1.6)以获得更多的灵活性:http://en.newinstance.it/2010/08/05/javabeans-to-xml-with-no-libraries/



1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接