让我们假设有一个默认的version 1
XML 文件:
<!--
Specification for a shirt
-->
<shirt color="red" size="L">
<buttons count=20/>
<pocket position="left">
<!-- this might be removed later on -->
</pocket>
</shirt>
当部署在生产环境中时,它会发生如下变化(出于某种我们不关心的原因)(让我们称之为1A
):
<!-- Specification for a shirt -->
<shirt size="M" color="blue">
<buttons count=16/>
<pocket position="left">
<!-- this might be removed later on -->
</pocket>
</shirt>
现在,新版本的 XMLversion 2
已作为新的默认值发布:
<!--
Specification for a shirt
-->
<shirt color="red" size="L" vendor="xyz">
<buttons count=16/>
<cloth type="silk"/>
</shirt>
1A
现在需要更改生产中的所有这些文件。
问题是我们如何找到前两个 XML 文件之间的差异并将它们修补到第三个 XML 文件中?并不是说生产中的文件可能会更改 XML 属性的顺序,这不算作语义更改,并且在计算差异时应该被忽略。同样,应该忽略两个属性之间的换行符。例子:
<shirt color="red" size="L">
应被视为等同于:
<shirt size="L"
color="red">
我知道我们可以编写一个 Java 程序来做到这一点,但是如果有一个漂亮的实用程序xmldiff
如
version 2
其次,如果在执行 diff/patch 时保留了中的注释,那就太好了