XmlTextReader for XDocument源码

时间:2015-08-12 20:10:40

标签: c# xml

鉴于XDocument,我如何获取其内容的XmlTextReader? XDocument.CreateReader()返回一个XmlNodeReader,我需要一个XmlTextReader。

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

2 个答案:

答案 0 :(得分:1)

这似乎有效,不知道为什么我没想到它......

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

答案 1 :(得分:0)

我不知道这是否是最佳方式,但如果您获得XDocument并且无法将xml文件读取到其他任何内容,则可以将XDocument更改为MemoryStream并创建`的XmlTextReader'从这个流:

        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
        }