I want to write a C# application which will compare the tree structure of two XML files. I.e. I do not care about the content of the nodes, but only if there are the same tags used in both files (the order doesn't matter).
I would then like to output the nodes only found in one of the files.
Is there a library available for this goal? I guess there should be as comparing XMLs is a feature realized plenty of times already. So far I only found the seemingly outdated Microsoft Diff and Patch library which, as far as I can tell, doesn't offer the option to ignore the content of the nodes. It also feels wrong to use a library which seems to be that outdated.
When you don't want to compare content and care just about structure, let's get rid of the content!
You can use the built-in XmlDocument
class to load both XML files into memory and then start from the root and go down the tree and remove all content (as you don't care about it). Then you can take these augmented files and run them through a ordinary file diff-library (for example Google-diff-match-patch)