创建XML的最快,最有效的方法

arr*_*man 9 java xml performance xml-serialization

在Java中创建XML文档的最快和最有效的方法是什么?那里有很多库(woodstox,xom,xstream ......),只是想知道是否有人有任何输入.我应该采用代码生成方法(因为xml架构是众所周知的)?或者在运行时采用反射方法?

编辑附加信息:

  1. 定义良好的XML Schema可用且很少更改
  2. 要求是将java对象转换为XML,反之亦然
  3. 每秒有数千个java对象转换为XML
  4. 代码生成,代码复杂性,配置,维护等是性能更高的第二代.

Łuk*_*man 14

如果我要创建一个非常简单的XML内容,我会坚持只使用JDK api,不会引入第三方依赖.

所以对于简单的XML,如果我要将XML文件映射到Java类(反之亦然),我会选择JAXB.请参阅本教程以了解它是多么容易.

现在.

如果我要使用常量方案创建一些更复杂的XML输出,我可能会使用一些模板引擎,Freemarker.Thymeleaf看起来也不错.

最后.

如果我要非常有效地创建巨大的XML文件,我会使用SAX解析器.

我希望您现在明白,您有很多可能性 - 根据您的需求选择最佳匹配:)

玩得开心!

  • 我不认为`StringBuilder`是创建有效xml的简单方法.我认为这是最复杂的方式,因为你必须自己做所有事情.看看使用EclipseLink MOXy从对象创建xml是多么容易,例如:[MOXy:Getting Started](http://wiki.eclipse.org/EclipseLink/Examples/MOXy/GettingStarted/TheBasics)这比使用`更容易StringBuilder`. (6认同)

yeg*_*256 5

试试Xembly,一个小型开源库,使这个XML创建过程非常简单直观:

String xml = new Xembler(
  new Directives()
    .add("root")
    .add("order")
    .attr("id", "553")
    .set("$140.00")
).xml();
Run Code Online (Sandbox Code Playgroud)

Xembly是本机Java DOM的包装器,是一个非常轻量级的库(我是开发人员).