4
我使用MS XmlDiffPatch tool比較兩個序列化對象的xml。 (C#)如何解析XML差異以僅顯示差異
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>
有關如何處理差異的任何建議,只能顯示兩者之間的差異?
我想最終顯示,僅僅示出了 NumberNights:OLDVALUE(4),新的值(5)
在XML比較工具具有GetHtml()函數,但它顯示的所有值和剛剛亮點那些已經改變。目前爲了獲得差異,我查看CSS'lightgreen'生成的html,然後執行字符串操作來查找節點的名稱。對於充滿審計數據的表格,這是瘋狂且非常慢的!任何更好的想法讚賞!
看起來更有用的輸出!我只是使用XmlDiffPatch,因爲它是由某人推薦的,請嘗試xmldiff,謝謝 – UglyTeapot
只有xmldiff的問題是它對大量輸入沒有用(當我比較兩個2mb XML文件時,殺死了我的四核Xeon和8個ram,只有細微差別)。 –