相关疑难解决方法(0)

您如何比较两个XML文档?

作为一些广泛的单元测试的基类的一部分,我正在编写一个辅助函数,它在C#(.NET)中递归地将一个XmlDocument对象的节点与另一个XmlDocument对象的节点进行比较.一些要求:

  • 第一个文档是源代码,例如我希望XML文档看起来像什么.因此,第二个是我想要找到差异的那个,它不能包含不在第一个文档中的额外节点.
  • 当发现太多显着差异时必须抛出异常,并且应该通过人们对该描述进行瞥见来容易理解.
  • 子元素顺序很重要,属性可以按任何顺序排列.
  • 有些属性是可以忽略的; 特别是xsi:schemaLocationxmlns:xsi,虽然我希望能够通过在哪些.
  • 名称空间的前缀必须在属性和元素中都匹配.
  • 元素之间的空白是无关紧要的.
  • 元素将要么有子元素 InnerText,但不能同时.

虽然我正在废弃一些东西:有没有人写过这样的代码,是否有可能在这里分享?

顺便说一下,你会把第一个和第二个文件称为什么?我一直把它们称为"源"和"目标",但它感觉不对,因为是我希望目标看起来像,否则我抛出异常.

.net c# xml xmldocument compare

60
推荐指数
7
解决办法
8万
查看次数

比较XML文件是否相同的最佳方法是什么?

我正在使用.NET 2.0,最近的代码更改使我之前的Assert.AreEqual调用失效(它比较了两个XML字符串).在新的代码库中,只有一个XML元素实际上是不同的,所以我希望对所有其他元素进行比较会得到我想要的结果.比较需要以编程方式完成,因为它是单元测试的一部分.

起初,我正在考虑使用几个XmlDocument实例.但后来我发现了这个:http: //drowningintechnicaldebt.com/blogs/scottroycraft/archive/2007/05/06/comparing-xml-files.aspx

看起来它可能会起作用,但我对Stack Overflow反馈感兴趣,以防有更好的方法.

如果可能的话,我想避免为此添加另一个依赖项.

类似的问题

.net c# xml comparison unit-testing

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×2

c# ×2

xml ×2

compare ×1

comparison ×1

unit-testing ×1

xmldocument ×1