我应该使用XSLT或Java来转换我的XML文档吗?

时间:2013-02-20 15:30:12

标签: java xml xslt

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

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

有关使用XSLT与Java + XML读取器/写入器制作这些新XML文件是否会更好的建议?

转型速度对我来说无关紧要。对于我需要处理的20个xml文件中的每个文件,此过程将发生一次。我不必持续这样做 - 换句话说,这个过程就是扔掉了。

输出XML将是简单的XML。没有swank。

5 个答案:

答案 0 :(得分:2)

对于一次性过程,您只需要做一次然后扔掉,然后使用您感觉舒服的任何东西并拥有工具。如果您有更多使用Java的经验/工具,那么请继续使用。

更一般地说,我的经验是在较大的项目中,我们几乎总是诉诸于java(即使我们在xslt开始开发) - 在更大的,正在进行的项目中,需求经常增长并变得更复杂并且通常找到xslt对具有多个嵌套级别(具有列表节点)的大型复杂文档进行转换变得无法理解/测试。此外,不可避免的要求还需要进行额外的逻辑/条件转换/数据库查找等。

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

答案 1 :(得分:1)

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

您有以下选择:

  • XSLT
  • Java SAXParser
  • Java DOMParser + iterate
  • Java StAX

答案 2 :(得分:1)

我必须使用XSLT,但最终决定取决于您可以使用哪些工具。

你可能相当平凡,使用像Dozer和/或Castor-XML这样的东西用Java编写它,如果你拥有的只是一个Java IDE,这将是一件好事。

如果你有一个好的XSLT工具(比如XMLSpy),那么XSLT就是你的选择。

所以是的。根据您拥有的工具,可以在几个小时内执行此操作(如果您需要首先学习框架,可能在Java中稍微多一点)。

答案 3 :(得分:1)

这个问题没有足够的信息可以最终回答,所以这里有一些可能的指示。

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

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

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

如果两种格式的形状之间的差异很大,那么XSLT可能是一种更清晰,更简单的方式来执行转换。

如果差异微不足道,并且您需要转换很多文档,那么在Java中使用DOM可能会显着提高性能。

答案 4 :(得分:0)

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