我正在使用xml diff dll比较2个xml文件。 例如,我无法获取节点名称和节点的旧值 文件1:
文件1
<LastNameInfo>
<LNameNum>1</LNameNum>
</LastNameInfo>
文件2:
<LastNameInfo>
<LNameNum> 5</LNameNum>
</LastNameInfo>
我甚至需要将节点名称放在这个例子LnameNum中,而旧值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
的节点