我使用MS XmlDiffPatch 工具比较了两个序列化对象的 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>
关于如何处理差异以仅显示两者之间的差异的任何建议?
我想要一个只显示 NumberNights 的最终显示:oldvalue (4), new value (5)
Xml Diff Tool 有一个 GetHtml() 函数,但它会显示所有值并突出显示已更改的值。目前,为了获得差异,我查看了 CSS 'lightgreen' 的生成 html,然后进行字符串操作以找到节点的名称.. 对于一个充满审计数据的表来说,这太疯狂了,而且真的很慢!任何更好的想法表示赞赏!