我想比较2个XML文件。 如果两者具有相同的结构,则看起来很容易。但不是在我的情况:( 我的文件看起来像:XML比较器C#
<root>
<t>
<child1>
<cc1>val</cc1>
<cc2>val</cc2>
......
</child1>
<child2>
<cc1>val</cc1>
<cc2>val</cc2>
......
</child2>
<child2>
<cc1>val</cc1>
<cc2>val</cc2>
......
</child2>
.......
<child3>
<cc1>val</cc1>
<cc2>val</cc2>
......
</child3>
....
</t>
<t>
...
</t>
.....
</root>
而且他们可以有CHILDES的任何号码,CHILDES的CHILDES ... 任务是
如果只比较一个已定义的块,我需要搜索它以获取第一个孩子的孩子的值(本例中为child1.cc1.value)
比较期间可以跳过一些节点(跳过的节点的名称存储在某处,例如,在字符串数组)
有可能有多个相同的节点。如果child2不被忽略,那么我需要确保它们的数量是相同的,并且它们都与相应的第二个文件重合。因此,有可能是下一个情况:
一号文件包含:
<child2><cc1>1</cc1>...</child2>
<child2><cc1>3</cc1>...</child2>
<child2><cc1>2</cc1>...</child2>
2ST文件包含:
<child2><cc1>2</cc1>...</child2>
<child2><cc1>1</cc1>...</child2>
<child2><cc1>3</cc1>...</child2>
这意味着它们是相互对应。 所以他们可以按随机顺序。
现在我不能决定如何实现这个算法。我建议使用DataSet对象,但是这种XML结构对于简单地使用DataTables,dataRows等来说看起来太难了。
现在我正在尝试XmlNodes。但我还没有意识到那部分,我有几个相同的节点,随机顺序不同的数据。
任何想法?
>>'<子ID = “1”>,<子ID =”噢,如果我可以选择... 但是你的想法非常漂亮!至少我喜欢它,我会尝试。 – Ksice
@Ksice我不会说这很漂亮!但是我使用了类似的代码来验证XML文档的完整性。将它分解成类可以帮助您在头脑中澄清问题。顺便说一句,上面的代码是完全未经测试 - 可能需要一些调整:) –