我必须将一堆 XML 文档转换为另一种格式。
据我所知,我可以使用 XSLT 或 Java 以及 XML 读取器/写入器。根据过去的经验,我记得 XSLT 是一场缓慢而艰难的斗争。
关于我是否会更好地使用 XSLT 与 Java + XML 阅读器/编写器来制作这些新的 XML 文件有什么建议吗?
转变的速度对我来说并不重要。对于我需要处理的 20 个 xml 文件中的每一个,此过程将发生一次。我不必一直这样做——换句话说,这个过程是一次性的。
输出 XML 将是类似的简单 XML。没有炫耀。
对于一个一次性的过程,你只需要做一次然后扔掉,然后使用你喜欢的任何东西并拥有工具。如果您有更多使用 Java 的经验/工具,那就去吧。
更一般地说,我的经验是在大型项目上,我们几乎总是最终求助于 java(即使我们开始使用 xslt 开发)——在更大、正在进行的项目中,需求经常增长并变得更加复杂,并且通常发现 xslt 转换为大型具有多个嵌套级别(带有列表节点)的复杂文档难以理解/测试。再加上不可避免的需要额外的逻辑/条件转换/数据库查找等总是在某个地方突然出现。
最后,按照你所知道的去做!
我建议您使用您最熟悉的技术。你不应该为此付出太多努力,因为它不是一个关键项目——在这种情况下,即使速度也不重要。
你有一些选择:
我不得不使用 XSLT,但最终的决定将取决于你有哪些可用的工具。
您可能相当简单,使用诸如 Dozer 和/或 Castor-XML 之类的东西用 Java 编写它,如果您只有一个 Java IDE,这将是一件好事。
如果您有一个好的 XSLT 工具(如 XMLSpy),那么 XSLT 将是您的最佳选择。
是的。根据您拥有的工具,任何一个都可以在几个小时内完成(如果您需要首先学习框架,在 Java 中可能会稍微多一点)。
这个问题没有足够的信息来得出结论性的答案,所以这里有一些可能的指针。
如果工作只是将 XML 转换为另一种形式的 XML,并且所有必需的数据都在原始 XML 中可用,那么 XSLT 可能是最合适的。毕竟,这就是 XSLT 的全部目的。
如果您从未使用过 XSLT,不想学习或没有时间学习,并且在 Java 方面非常胜任,那么 Java 很可能是使用的工具。使用您已经熟悉的工具会更快。
如果转换需要从其他来源(例如数据库)获取数据,或者进行一些复杂的计算,那么您可能必须使用 Java。
如果两种格式的形状差异很大,那么 XSLT 可能是一种更清晰、更容易执行转换的方法。
如果差异很小,并且您有很多文档要转换,那么在 Java 中使用 DOM 可能会明显提高性能。
Java 是一门强大的语言,将为数以千计的可用 API 资源/文档提供强大的支持。所以如果我是你,我肯定会选择 Java。