我从 MSDN 获得了有关如何将两个 XML 与 XML Diff 和 Patch 进行比较的示例。 MSDN XML 差异和路径
这是一个简单的例子,但我没有得到我所期望的。
我有以下 XML:
<a>
<component>A</component>
<component>4</component>
</a>
和
<a>
<component>A</component>
<component>5</component>
</a>
运行工具代码我并没有完全不同。我得到的输出是:
<a>
<component>A</component>
<component>5</component>
</a>
但是出于我的目的,在这种情况下,我只想获得与原始版本不同的差异。
<a>
<component>4</component>
</a>
有谁知道我如何使代码适应我的解决方案。
非常感谢。
使用的编辑代码:
(在这里我找出文件之间的差异)
public void GenerateDiffGram(string originalFile, string finalFile, XmlWriter diffGramWriter) { XmlDiff xmldiff = new XmlDiff(XmlDiffOptions.IgnoreChildOrder | XmlDiffOptions.IgnoreNamespaces | XmlDiffOptions.IgnorePrefixes); bool bIdentical = xmldiff.Compare(originalFile, newFile, false, diffgramWriter); diffgramWriter.Close(); }
修补原始文件以创建新的更改文件。
public void PatchUp(string originalFile, String diffGramFile, String OutputFile) { XmlDocument sourceDoc = new XmlDocument(new NameTable()); sourceDoc.Load(originalFile); XmlTextReader diffgramReader = new XmlTextReader(diffGramFile); xmlpatch.Patch(sourceDoc,diffgramReader); XmlTextWriter output = new XmlTextWriter(OutputFile,Encoding.Unicode); sourceDoc.Save(output); output.Close(); }