用于XML结构比较的C#API

本文关键字:C#API 比较 结构 XML 用于 | 更新日期: 2023-09-27 18:20:27

有没有一种方法可以通过编程比较两个XML文件的结构,而不是它们的值?

更具体地说,如果您有两个xml文件:

<car>
<numberofwheels>4</numberofwheels>
<carcolor color="red" dateofpainting="2015-10-10" />
</car>

<car>
<numberofwheels>7</numberofwheels>
<carcolor color="blue" />
</car>

它只会注意到属性dateofpainting丢失而不会注意到值(numberofwheelscolor)的变化。我也不在乎空格、换行符、属性顺序等…

微软提供了一个XML Diff和Patch工具,但据我所见,它也会检查XML值,您不能将其设置为忽略它们。

用于XML结构比较的C#API

如果任何一个结构是预定义的,那么您可以使用XML模式来查找不匹配的地方。如果没有,则必须使用XMLDocument/XMLReader类逐个遍历文档,然后才能获得差异列表。