XML Parsing in C#

One of the things I keep coming back to time and again is how to parse XML in C#. Apparently there are 3 different ways :

[1] XmlDocument

[2] XmlReaders

[3]  LINQ2XML or XLINQ for short  (recommended)

#3  is apparently the recommended approach, given its simplicity.

I tried giving it a shot.  It turns out its really quite simple after all. I could read an XML and parse it in memory, and add elements to it, in pretty quick time.