Xmldiff工具输出节点名称和以前的值

时间:2012-02-16 18:39:35

标签: c# xml

我正在使用xml diff dll比较2个xml文件。 例如,我无法获取节点名称和节点的旧值 文件1:

文件1

<LastNameInfo>
    <LNameNum>1</LNameNum>
</LastNameInfo>

文件2:

<LastNameInfo>
    <LNameNum> 5</LNameNum>
</LastNameInfo>

我甚至需要将节点名称放在这个例子LnameNum中,而旧值1可以帮助一些?

1 个答案:

答案 0 :(得分:1)

因此XMLDiff'diffgram'定义差异的方式不是基于'name',而是基于节点顺序,它从上到下枚举它们。

查看MSDN了解更多详情

您可以使用diffpatch工具将diffgram应用于特定的XML,但它也没有明确提及diffgram中的“old”值。它要么改为'newvalue',要么删除节点x,而不指定内容。

它能够输出一个HTML视图,该视图通过颜色突出显示并排显示新旧 - 但如果您有兴趣做一些类似于生成文件的内容:

<LastNameInfo>
  <LNameNum>
    <old>1</old>
    <new>5</new>
  </LNameNum>
</LastNameInfo>

甚至只是一些控制台输出,如:

Node Name: LNameNum
Changed From: 1 To: 5

您将需要自己解析XML Diffgram以及您自己的文件,并基本上找出

 <xd:node match="1">
       <xd:change match="1"/>5</xd:change>
 </xd:node>

指的是名为LNameNum

的节点