MS XmlDiffPatch ツールを使用して、シリアル化された 2 つのオブジェクトの xml を比較します。(C#)
XML サンプル 1:
<HotelBookingView xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Id>119</Id>
<RoomId>1</RoomId>
<NumberNights>4</NumberNights>
<CourseBookings>
<CourseHotelLink>
<Id>0</Id>
</CourseHotelLink>
</CourseBookings>
</HotelBookingView>
XML サンプル 2:
<HotelBookingView xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Id>119</Id>
<RoomId>1</RoomId>
<NumberNights>5</NumberNights>
<CourseBookings>
<CourseHotelLink>
<Id>0</Id>
</CourseHotelLink>
</CourseBookings>
</HotelBookingView>
(NumberNights が 4 から 5 に変更されました)
それらの間の違い:
<?xml version="1.0" encoding="utf-8" ?>
<xd:xmldiff version="1.0" srcDocHash="14315823970661993399" options="IgnoreChildOrder" fragments="no" xmlns:xd="http://schemas.microsoft.com/xmltools/2002/xmldiff">
<xd:node match="1">
<xd:node match="3">
<xd:change match="1">5</xd:change>
</xd:node>
</xd:node>
2つの違いのみを表示できるように差分を処理する方法に関するアドバイスはありますか?
NumberNights: oldvalue (4), new value (5) だけを示す最終的な表示が欲しい
Xml Diff ツールには GetHtml() 関数がありますが、すべての値が表示され、変更されたものだけが強調表示されます。現在、CSS 'lightgreen' の生成された html を調べて、違いを取得するために、文字列操作を行ってノードの名前を見つけます..監査データでいっぱいのテーブルでは非常識で非常に遅いです! より良いアイデアをいただければ幸いです。