可能重复:
What is the best/simplest way to read in an XML file in Java application?
如何将XML转换为POJO,反之亦然? axis2提供这种能力吗?或者java已经具有内置功能吗?或任何其他框架?感谢
答案 0 :(得分:7)
我真的鼓励您使用 JAXB 。
JAXB是一个注释框架,它将Java类映射到XML和XML模式(反之亦然)。它非常有用,因为您可以使用更接近您正在建模的域的真实Java对象,而不是与XML文档的抽象表示交互。
如果您需要构建一个RESTful Web服务,通过JAXB自动将Java对象序列化/反序列化为XML,我还建议您阅读本书:
使用JAX-RS的Oreilly RESTful Java - (第6章JAX-RS内容处理程序)
答案 1 :(得分:6)
如果您需要一个随时可用的框架,请查看xstream
答案 2 :(得分: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
有一个article here,它解释了如何只使用XPath。
另请参阅关于SO here的类似讨论。
答案 3 :(得分:1)
您可以尝试JAXB http://jaxb.java.net/或XMLBeans http://xmlbeans.apache.org/
答案 4 :(得分:1)
使用XMLEncoder
和XMLDecoder
类将此简单版本内置到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/
这是我刚发现的另一个链接,这解释了如何
从xmlencoder
移至jaxb(内置于jdk&gt; = 1.6)以获得更大的灵活性:
http://en.newinstance.it/2010/08/05/javabeans-to-xml-with-no-libraries/