diff两个XML文件

时间:2013-03-05 12:29:56

标签: xml diff

我有这样的xml文档:

<datatypes xmi:id="ID_01"</datatypes>
<datatypes xmi:id="ID_02">
  <fields xmi:id="ID_03">
    <datatype xmi:idref="ID_01"></datatype>
  </fields>
</datatypes>

我也有改变xml文件的spesil工具。它允许您添加新节点属性并更改旧节点,但在使用之后,所有ID都会更改。

使用工具:

<datatypes xmi:id="ID_11"</datatypes>
<datatypes xmi:id="ID_12">
  <fields xmi:id="ID_13">
    <datatype xmi:idref="ID_11"></datatype>
  </fields>
  <something_new/>

</datatypes>

我想比较两个xml文件,只找到&lt; something_new /&GT; 即可。当我使用标准差异时,我会看到所有更改(也是ID)

有没有简单的方法来解决这个问题? 如果没有,我应该使用什么langudge(IDE)来编写这样的比较紧急。

2 个答案:

答案 0 :(得分:0)

您可以尝试diffxml

XMLUnitdiff功能

答案 1 :(得分:0)

我看看Spesil的文档(这是一个库吗?我无法在任何地方找到这个文档)看看这个行为是否符合预期,可能会有一些配置阻止id号进入替换...

如果存在此XML消息的模式,您可以使用JAXB将XML解组为您可以访问的模型,您可以传递之前和之后(编组两者)然后编写例程以查找更改) 。如果您需要访问更改的其他属性/元素,这将是一个很好的方法,因为您可以作为对象访问更改(而不仅仅是文本更改,就像使用diff工具一样)。我想这取决于你打算如何使用这些变化!

JLove