XML转换自动化

时间:2016-03-23 05:38:21

标签: xml xsd automation

我有一个桌面应用程序,它将XML文件作为输入。当新功能被引入应用程序时,我必须创建新的XML文件。

新XML的格式与现有格式的80%相似。因此,对于新增强功能,此XML的自动化将使我的时间减少80%。

我已经考虑过XSD,但我不知道这是否正确。

或者,XML转换自动化是否还有其他可能性?

1 个答案:

答案 0 :(得分:1)

XSLT非常适合自动转换XML ,前提是您需要学习声明性编程语言。

当新XML与现有XML 80%相似时,请从身份转换开始,

<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

将以相同的方式复制XML。

然后添加模板以涵盖新XML与旧XML的不同之处。例如,将此模板添加到标识转换

<xsl:template match="not-needed"/>

将阻止not-needed个元素转换为新的XML。

这个模板,

<xsl:template match="old-element">
  <new-element/>
</xsl:template>

会将old-element(及其下方的所有内容)替换为new-element

或者,这个模板,

  <xsl:template match="old-element">
    <new-element>
      <xsl:apply-templates select="@*|node()"/>
    </new-element>
  </xsl:template>

old-element替换new-element(但其下的所有内容)。

能够在几分钟内以这种方式创建基于身份的转换是很常见的。幸运的是,这种功能扩展到更复杂的转换,同样具有相似的高结果 - 功率比。

另请参阅:How to get started with XSLT?