2

2 つの XML を XML Diff および Patch と比較する方法について、MSDN から例を入手しました。 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