2

我必须将一堆 XML 文档转换为另一种格式。

据我所知,我可以使用 XSLT 或 Java 以及 XML 读取器/写入器。根据过去的经验,我记得 XSLT 是一场缓慢而艰难的斗争。

关于我是否会更好地使用 XSLT 与 Java + XML 阅读器/编写器来制作这些新的 XML 文件有什么建议吗?

转变的速度对我来说并不重要。对于我需要处理的 20 个 xml 文件中的每一个,此过程将发生一次。我不必一直这样做——换句话说,这个过程是一次性的。

输出 XML 将是类似的简单 XML。没有炫耀。

4

5 回答 5

3

对于一个一次性的过程,你只需要做一次然后扔掉,然后使用你喜欢的任何东西并拥有工具。如果您有更多使用 Java 的经验/工具,那就去吧。

更一般地说,我的经验是在大型项目上,我们几乎总是最终求助于 java(即使我们开始使用 xslt 开发)——在更大、正在进行的项目中,需求经常增长并变得更加复杂,并且通常发现 xslt 转换为大型具有多个嵌套级别(带有列表节点)的复杂文档难以理解/测试。再加上不可避免的需要额外的逻辑/条件转换/数据库查找等总是在某个地方突然出现。

最后,按照你所知道的去做!

于 2013-02-20T15:41:44.270 回答
2

我建议您使用您最熟悉的技术。你不应该为此付出太多努力,因为它不是一个关键项目——在这种情况下,即使速度也不重要。

你有一些选择:

  • XSLT
  • Java SAX解析器
  • Java DOMParser + 迭代
  • Java StAX
于 2013-02-20T15:41:18.387 回答
1

我不得不使用 XSLT,但最终的决定将取决于你有哪些可用的工具。

您可能相当简单,使用诸如 Dozer 和/或 Castor-XML 之类的东西用 Java 编写它,如果您只有一个 Java IDE,这将是一件好事。

如果您有一个好的 XSLT 工具(如 XMLSpy),那么 XSLT 将是您的最佳选择。

是的。根据您拥有的工具,任何一个都可以在几个小时内完成(如果您需要首先学习框架,在 Java 中可能会稍微多一点)。

于 2013-02-20T15:44:33.057 回答
1

这个问题没有足够的信息来得出结论性的答案,所以这里有一些可能的指针。

如果工作只是将 XML 转换为另一种形式的 XML,并且所有必需的数据都在原始 XML 中可用,那么 XSLT 可能是最合适的。毕竟,这就是 XSLT 的全部目的。

如果您从未使用过 XSLT,不想学习或没有时间学习,并且在 Java 方面非常胜任,那么 Java 很可能是使用的工具。使用您已经熟悉的工具会更快。

如果转换需要从其他来源(例如数据库)获取数据,或者进行一些复杂的计算,那么您可能必须使用 Java。

如果两种格式的形状差异很大,那么 XSLT 可能是一种更清晰、更容易执行转换的方法。

如果差异很小,并且您有很多文档要转换,那么在 Java 中使用 DOM 可能会明显提高性能。

于 2013-02-20T15:47:50.723 回答
0

Java 是一门强大的语言,将为数以千计的可用 API 资源/文档提供强大的支持。所以如果我是你,我肯定会选择 Java。

于 2013-02-20T15:35:40.157 回答