Do you know XmlDocument or XPathDocument creates an in memory representation of the entire XML document. And this typically consume memory equivalent to three or four times of the size of the XML document on disk.
On the other hand XmlTextReader, loads only 4KB (kilobyte) buffer into memory and give better performance and scalability.