我使用以下方法比较两个序列化对象的 xmlMS XmlDiffPatch 工具 http://msdn.microsoft.com/en-us/library/aa302294.aspx. (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:旧值 (4),新值 (5)
Xml Diff 工具具有 GetHtml() 函数,但它显示所有值并仅突出显示已更改的值。目前,为了获得差异,我在生成的 html 中查找 CSS 'lightgreen',然后进行字符串操作以查找节点的名称.. 对于充满审计数据的表来说,这是疯狂且非常慢的!任何更好的想法表示赞赏!