I have read a comparison between the two here. This is primarily a question of performance, relating to both memory and speed.
I've got several XML documents that are upwards of 100 - 300 K in size. I've noticed that there is some lag when loading this information into an XDocument
rather than an XmlDocument
object.
The end use of these object is to run queries (XPath
or LINQ, depending) on the object in question.
XmlDocument is a purely managed implemenation of the Document Object Model. There is no interop with any COM components, such as the MSXML library. Any claim otherwise is completely bogus. The entire XLinq set of APIs came about as a friendlier way to interact with XML with introduction of LINQ in the .NET Framework.
If you're trying to maximize performance and are comfortable using XPath, try using the XmlDocument and using compiled XPath expressions.