将XML转换为属于同一模式的不同版本的稍微不同的XML

时间:2012-10-25 20:07:52

标签: java xml xslt jaxb mule

我需要将一个XML(比如x1.xml)转换为稍微不同的XML(比如x2.xml)格式,该XML是我的应用程序的输入,该格式基于相同模式的较新版本。 x2是我的应用程序的输出。 x1和x2的大约90%的元素是相同的,因为它们属于相同的模式(只是不同的版本)。

转型的最佳方法是什么?我正在使用java和mule esb。

2 个答案:

答案 0 :(得分:4)

这是XSLT的面包和黄油任务。从标识模板规则开始,默认情况下复制元素不变:

<xsl:template match="*">
 <xsl:copy>
   <xsl:copy-of select="@*"/>
   <xsl:apply-templates/>
 </xsl:copy>
</xsl:template>

然后为要修改的任何元素添加更多模板规则。

答案 1 :(得分:0)

这取决于文档的大小,所需的转换类型以及运行它的次数。您需要权衡学习选择技术的成本与它将提供的好处。

我个人会从xslt样式表或Java DOM api开始,因为这是我所熟悉的。如果性能不符合您的要求,请切换到其他选项之一。