我从MSDN获得了关于如何将两个XML与XML Diff和Patch进行比较的示例。 MSDN XML Diff & Path
这是一个简单的例子,但我得不到我的期望。
我有以下XMls:
<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();
}