关于XML Diff&补丁

时间:2012-05-22 14:49:07

标签: c# xml xml-parsing xmldiff

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

0 个答案:

没有答案