Java到XML的转换?

时间:2010-11-20 00:12:11

标签: java xml serialization

Java Objects转换为XML有哪些不同的方法,我知道有一个选项是JAXB,但我想知道同一个approaches/tools可用的是什么?

注意: 我没有进一步的要求,因此我无法在问题中添加更多meat,但此时此刻真的很棒如果我可以了解哪些不同的方法可用于转换Java to XML

更新: 不同的建议方法是:

  1. javax.xml.bind.Marshallerjavax.xml.bind.Unmarshaller
  2. XStream
  3. XMLBean
  4. JAXB
  5. Castor
  6. JIBX
  7. Apache Digester
  8. 现在,在所有建议的方法中,转换Java Objects to XMLXML to Java Objects 最佳 方法是什么?

9 个答案:

答案 0 :(得分:32)

答案 1 :(得分:10)

您始终可以使用javax.xml.bind.Marshallerjavax.xml.bind.Unmarshaller接口自行完成。

这并不像听起来那么疯狂。这并不难,而且你可以完全掌控并完成所做的事情。

我愿意承认很多人更喜欢自动化方法。我的产品不会受欢迎。

我过去使用过XStream并喜欢它,但是当我使用它时,我不必担心XML命名空间。我被告知XStream并没有很好地处理它们。

答案 2 :(得分:2)

一些替代方案包括: -

然而,与JAXB一起使用的一个显着优点是它带有Java distrubtion。

答案 3 :(得分:1)

我知道这不是你问的问题,但是你考虑过JSON而不是XML吗?我目前正在开发一个大量使用JSON(使用Jackson库)的项目,我对此非常满意。杰克逊的工作方式与JAXB类似 - 它甚至适用于JAXB注释,以防你想要同时使用它们。

XMLBeans也值得一看。

答案 4 :(得分:1)

简单XML序列化(simpleframework.org)

另一种方法是Simple,它比JAXB,JiBX或其他类似工具更容易使用。您只需注释类,就可以将任何POJO序列化为XML。此外,它可能是目前适用于所有已知Java平台的唯一框架,包括Android,Google App Engine,任何JDK 1.5+。有关详细信息,请查看Tutorial

答案 5 :(得分:0)

还有:

  • java.beans.XMLEncoder / -Decoder
  • javax.xml.stream.XMLStreamWriter

但如果你没有充分的理由不这样做,我建议使用JAXB。

答案 6 :(得分:0)

您也可以查看castorjibx

答案 7 :(得分:0)

Apache Digester是一个选项。这是tutorial。如果JSON格式可以接受,那么您可以使用google-gson

答案 8 :(得分:0)

Castor允许直接从XSD模式生成Java类(体面实现)(上面的用例#1)。 请确保,在Android 2.1中,不要使用默认的android SAXParser。你会得到命名空间错误。您可以通过在core.properties中将解析器定义为例如Xerces(以及您添加所需的JARS)来实现此目的。在Android 2.2中它可能没问题。请注意,如果使用xerces为unmarsheler创建xmlcontext,它仍然无法工作,因为映射本身将使用android的SAX进行解析。它必须在核心(顶级属性文件)上完成,以便即使映射也由xerces解析。终于 - 性能和你期望的一样慢...... :(祝你好运SM