【问题标题】:Is there an easy way to compare if 2 XDocuments are equal ignoring element/attribute order?是否有一种简单的方法来比较 2 个 XDocuments 是否相等而忽略元素/属性顺序?
【发布时间】:2009-05-17 22:13:59
【问题描述】:

单元测试我的序列化代码我发现一个失败,因为我的属性以不同的顺序列出(我只是比较 XDocument.ToString() 值),虽然我可以解决这个问题,但这对我来说并不重要元素或属性以什么顺序出现,只要它们都在正确的层次结构中具有正确的名称。我可能可以编写一个方法来做到这一点,但我想知道是否有一种我不知道的简单内置方法。

【问题讨论】:

    标签: c# xml linq-to-xml


    【解决方案1】:

    XNode 有一个 DeepEquals 函数应该可以解决问题。

    http://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.deepequals.aspx

    更新:

    DeepEquals 函数似乎并不总是正常工作。您最好实施自己的比较例程。

    http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=400469

    【讨论】:

    • DeepEquals 对我来说就像魅力一样。谢谢。我已经阅读了 Aim Kai 提到的帖子,幸运的是这些场景不适用于我的情况。
    【解决方案2】:

    除了“亚当露丝”,我阅读了微软链接,这篇博文非常有用..

    埃里克·怀特: http://blogs.msdn.com/b/ericwhite/archive/2009/01/28/equality-semantics-of-linq-to-xml-trees.aspx

    【讨论】:

      【解决方案3】:

      试试 Microsoft XML Diff and patch 实用程序here 或谷歌“Xml Diff”

      【讨论】:

        猜你喜欢
        • 2012-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-17
        • 2023-03-21
        • 2020-10-16
        • 2012-02-15
        相关资源
        最近更新 更多