2012-01-23 30 views
0

我在寫一個審計日誌,它保存了兩個相同類型的序列化對象之間的增量。是否有方法可以輕鬆刪除具有相同值的節點並保留更改的節點?從兩個XmlSerializer輸出獲取增量

StreamWriter oldData = new StreamWriter(); 
StreamWriter newData = new StreamWriter(); 
XmlSerializer xmlOld = new XmlSerializer(typeof(MyClass)); 
XmlSerializer xmlNew = new XmlSerializer(typeof(MyClass)); 

xmlOld.Serialize(oldData, obj); 
xmlNew.Serialize(newData, obj); 

謝謝。

回答

0

Microsoft提供了一個工具'XMLDiffPatch',它非常易於使用,並且會提供您正在查找的輸出。這是一個方便的小指南。

http://msdn.microsoft.com/en-us/library/aa302294.aspx

基本上你會使用工具來確定你應該從你的兩個項目輟學什麼,然後再從那裏。

+0

這並不壞,但我想避免使用外部工具。 – MarkP

+0

當然可以,但另一種方法是自己做差異,這非常耗時且充滿邊緣情況。 –