From XmlDocument To XmlReader .Net

If you are doing read only operations on an xml file then you can you use XmlReader but as @Marc Gravell points out it is difficult.

In this situation I will create a class that wraps an XPathDocument using an XmlReader. I then create an XPathNavigator to read the data. Here's an example:

public class MyXmlReader
{
    public MyXmlReader(string xml)
    {
        StringReader sReader = new StringReader(xml);

        XPathDocument xml = new XPathDocument(XmlReader.Create(sReader));

        xmlNav = xml.CreateNavigator();
    }

    private XPathNavigator xmlNav = null;


    public MyDataModel ReadMyDataModel()
    {
        MyDataModel model = new MyDataModel();

        model.Read(xmlNav);

        return model;
    }
}

As shown above, the reading of the data can then be encapsulated into an associated object model. You can see some details in my answer on this question:

How do I manipulate an XML document one parent element at a time?


You can use

XmlReader xmlReader = new XmlNodeReader(xmlDoc);

See: http://blog.jongallant.com/2007/01/convert-xmldocument-to-xmlreader.html