2

我从 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();
    }
    
4

0 回答 0