的StreamReader和读取XML文件 [英] StreamReader and reading an XML file

查看:158
本文介绍了的StreamReader和读取XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从一个网络服务器的响应使用的StreamReader ......现在我要分析此响应(它是一个XML文档文件)来获得它的值,但每次我尝试这样做,我得到一个错误:根元素是缺少。

如果我直接读取同一个XML文件,该文件是格式正确,我可以读取它。

这是流:

  WebResponse的响应= webRequest.GetResponse();
流responseStream = response.GetResponseStream();
StreamReader的responseReader =新的StreamReader(responseStream);
字符串responseString = responseReader.ReadToEnd();
 

这是我尝试读取XML文件:

 的XmlDocument xmlDoc中=新的XmlDocument();
xmlDoc.Load(responseReader);
XmlNodeList中地址= xmlDoc.GetElementsByTagName(原始);
 

解决方案

您已经叫 ReadToEnd(),因此占用了所有的数据(转换成字符串)。这意味着读者有什么更多的付出。只是:不这样做。或者说,做到这一点,使用的loadXML(reaponseString)

I get a response from a web-server using StreamReader... now I want to parse this response (it's an XML document file) to get its values, but every time I try to do it I get a error: Root element is missing.

If I read the same XML file directly, the file is well formatted and I can read it.

This is the stream:

WebResponse response = webRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader responseReader = new StreamReader(responseStream);
string responseString = responseReader.ReadToEnd();

And this is how I try to read the XML file:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(responseReader);
XmlNodeList address = xmlDoc.GetElementsByTagName("original");

解决方案

You have called ReadToEnd(), hence consumed all the data (into a string). This means the reader has nothing more to give. Just: don't do that. Or, do that and use LoadXml(reaponseString).

这篇关于的StreamReader和读取XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆