在Java中将XML转换为XML的更好方法/技术是什么?



我需要使用 Java 将 XML 转换为 XML。我用谷歌搜索了一下,我发现很少有以下技术

  1. JAXB
  2. 阿帕奇茧
  3. XSLT

谁能从上面的列表中向我推荐更好的方法/技术?如果还有其他更好的选择,请告诉我。

注意: 希望避免编写 XSLT。

谢谢。

XSLT是为了将XML转换为某些东西而创建的,并且非常擅长转换为XML。

  • 根据您的要求,纯 XSLT 可能就足够了;
  • 如果您的需求超出了本机 XSLT 功能,使用 Apache Xalan,您可以使用 Java 编写自己的扩展函数。

Apache Cocoon是一款很棒的软件,具有链接处理单元的功能。但这可能矫枉过正。最后,您可能必须编写XSLT供Cocoon处理。

很抱歉,我没有使用 JAXP(既不是 SAX 也不是 JDOM 选项)的经验,并且无法为您提供它的优缺点......除了一件好事是它提供了第三个选项:XSLT ;-)

如果你真的不想使用XSLT,也许可以看看Groovy,它可以编译成java类,据说可以自动将XML转换为对象图,将对象图转换为XML。查看以下线程以获取快速概述:

  • 从 xml 读取值(关于 XML 到对象)
  • Groovy - XmlNodePrinter 打印空白文件(对象到 XML)

最后,也许看看这个非常相似的问题(及其答案):

  • 使用 Java 转换 XML 有哪些不同的方法?

如果你想要通用的、复杂的转换,那么 XSLT 是要走的路 - AFAIK 它是完成这项工作的最强大的工具。

对于许多简单的任务,可能没有必要。如果您只是填写或多或少统一的文档,例如电子邮件或报告,请尝试使用模板框架,例如 freemarker。

我不熟悉Cocoon,也不确定如何使用JAXB进行XML转换。

确实存在与 XSLT 相关的学习曲线。这也是事实,它是完成这项工作的最佳工具。咬紧牙关,开始学习。

我发现 saxon 是一款出色的 xslt 处理器,能够支持 xslt 2.0。xslt 1.0 和 2.0 之间存在巨大差异。我相信它也可以在Java中扩展。

最新更新