I've just discovered LINQ to XML, which makes processing XML files very easy. You only need two classes (which become available when you have using System.Xml.Linq): XDocument and XElement. XDocument opens the XML file. XElement is the type of each node in the XML tree. Some of the XElement methods return a nice IEnumerable list that you can process with foreach. There's a lot more to LINQ to XML, but just these two classes enable you to easily do basic processing.