gpt4 book ai didi

c# - 您将如何比较两个 XML 文档?

转载 作者:IT王子 更新时间:2023-10-29 03:45:44 27 4
gpt4 key购买 nike

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

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

当我在拼凑一些东西时:有没有人写过这样的代码,可以在这里分享吗?

顺便说一句,您如何称呼第一份和第二份文件?我一直将它们称为“源”和“目标”,但感觉不对,因为 source 是我希望 target 看起来的样子,否则我会抛出一个异常(exception)。

最佳答案

Microsoft 有一个 XML diff API你可以使用。

非官方 NuGet:https://www.nuget.org/packages/XMLDiffPatch .

关于c# - 您将如何比较两个 XML 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com