I have parsed XML using both of the following two methods...
But I
If you want really fast XML processing (reading) you should consider using XmlReader unfortunately implementation is bit hard.
There is also a way to implement LINQ solution with a combination of XmlReader so you can have the ease of use of LINQ. Also you can get much better performance than XmlDocument/XPath.
Please refer to following link for more information on this. http://blogs.msdn.com/xmlteam/archive/2007/03/24/streaming-with-linq-to-xml-part-2.aspx
Also I think if you only work with small XML files using of XmlDocument/XPath won't be a performance issue.