Tony
Tony

Reputation: 2066

XmlTextReader for XDocument source

Given an XDocument, how can I obtain an XmlTextReader to its contents? XDocument.CreateReader() returns a XmlNodeReader, I need an XmlTextReader.

var xDoc = new XDocument(...);
var nodeReader = xDoc.CreateReader(); // I need a XmlTextReader
var textReader = new XmlTextReader(????xDoc???);

Upvotes: 2

Views: 1254

Answers (2)

titol
titol

Reputation: 1149

I don't know if this is best way, but if you got XDocument and cant read xml file to anything else, you could change XDocument to MemoryStream and create `XmlTextReader' from this stream:

        var xmlFile = XDocument.Load(uri);
        Stream stream = new MemoryStream();
        xmlFile.Save(stream);
        stream.Position = 0;
        XmlTextReader reader = new XmlTextReader(stream);
        while (reader.Read())
        {
            //do your stuff with file
        }

Upvotes: 0

Tony
Tony

Reputation: 2066

This seems to work, not sure why I didn't think of it sooner...

var xDoc = new XDocument(...);
var textReader = new XmlTextReader(new System.IO.StringReader(xDoc.ToString()));

Upvotes: 2

Related Questions