作为进行大量单元测试的基类的一部分,我正在编写一个辅助函数,该函数以递归方式比较一个XmlDocument对象的节点与C#(.NET)中另一个XmlDocument对象的节点。对此的一些要求:
第一个文档是源,例如,我想要XML文档的外观。因此,第二个是我要查找差异的节点,它不能包含第一个文档中没有的多余节点。
当发现太多显着差异时,必须抛出异常,并且人为查看该描述应该很容易理解。
子元素的顺序很重要,属性可以是任何顺序。
有些属性是可忽略的。特别是xsi:schemaLocation
和xmlns:xsi
,虽然我希望能够通过在哪些。
名称空间的前缀必须在属性和元素中都匹配。
元素之间的空格无关紧要。
元素将要么有子元素或 InnerText
,但不能同时。
当我凑在一起时:有没有人写过这样的代码,可以在这里共享吗?
顺便说一句,您将如何称呼第一文档和第二文档?我一直将它们称为“源”和“目标”,但感觉不对,因为源是我想要目标的外观,否则我抛出异常。
慕尼黑5688855