Using a forward-only reader is definitely going to be the most efficient approach, in which case a XmlReader derivation seems appropriate, to be sure, though it's still more work than using DOM approach that loads the entire file at once.
XmlReader is supposedly an improvement over the SAX XML parser API that originated in the Java world, but which has become a de facto standard in the industry (outside of Microsoft).
If you just want to get the job done quickly, the XmlTextReader exists for that purpose (in .NET).
If you want to learn a de facto standard that is stable (and also available in many programming languages) and which will force you to code very efficiently and elegantly, but which is also extremely flexible, then look into SAX. However, do not bother with SAX itself unless you're going to be creating highly esoteric XML parsers. There are plenty of parsers out there that use SAX under the covers.
Please check out my response about SAX here for a list of SAX resources and a really creative .NET XML parser idea that uses XmlTextReader as its foundation:
http://stackoverflow.com/questions/127869/sax-vs-xmltextreader-sax-in-c/546355#546355