微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在C#中逐步加载XML?

我需要逐步处理从Async回调XML上的ResponseStream加载.

回复有:

  <root>
     <node ...>
        .....
     </node>
     <node />
     ...
  </root>

架构,我需要有能力过程< node>在它们到达之前完成.

有没有正常的方法来使用标准.NET解析它?

解决方法:

System.Xml.XmlTextReader 

“代表一个提供快速,非缓存,仅向前访问XML数据的读者.”

http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.aspx

编辑:
这是一个快速的黑客,但它确实表明读者实际上是懒惰的.

 public class XmlTextReaderTest
    {
        public void Runtest()
        {
            var fs = new XmlTextReader(new Fs(@"c:\TestXml.xml"));
            while (fs.Read())
                File.AppendAllText(@"c:\xLog.txt", "Processing node..." + Environment.NewLine);
        }
    }

    public class Fs : FileStream
    {
        public Fs(string path)
            : base(path, FileMode.Open)
        {

        }

        public override int Read(byte[] array, int offset, int count)
        {
            File.AppendAllText(@"c:\xLog.txt", "Reading from stream..." + Environment.NewLine);
            var ans = base.Read(array, offset, count);
            return ans;
        }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。