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