Is there an easy way to compare if 2 XDocuments ar

2020-03-01 04:18发布

Unit testing my serialization code I found one failed because I had attributes listed in a different order (I'm just comparing the XDocument.ToString() values) and while I could fix that, it really doesn't matter to me in what order the elements or attributes appear as long as they're all there with the right name at the right level of hierarchy. I could probably write a method do this, but I'm wondering if there's an easy built in way I'm not aware of.

3条回答
▲ chillily
2楼-- · 2020-03-01 04:48

Try the Microsoft XML Diff and patch utility here or google "Xml Diff"

查看更多
Juvenile、少年°
3楼-- · 2020-03-01 04:50

Further to "Adam Ruth" I read through the microsoft link and this blog post is very useful..

Eric White: http://blogs.msdn.com/b/ericwhite/archive/2009/01/28/equality-semantics-of-linq-to-xml-trees.aspx

查看更多
贪生不怕死
4楼-- · 2020-03-01 05:03

XNode has a DeepEquals function that should do the trick.

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

Update:

It appears that the DeepEquals function doesn't always work correctly. You may be best off implementing your own comparison routine.

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

查看更多
登录 后发表回答