【发布时间】:2011-01-30 09:00:14
【问题描述】:
我从使用 StreamReader 的网络服务器得到响应...现在我想解析这个响应(它是一个 XML 文档文件)来获取它的值,但每次我尝试这样做时都会收到一个错误:Root缺少元素。
如果我直接读取同一个 XML 文件,该文件的格式很好,我可以读取它。
这是流:
WebResponse response = webRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader responseReader = new StreamReader(responseStream);
string responseString = responseReader.ReadToEnd();
这就是我尝试读取 XML 文件的方式:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(responseReader);
XmlNodeList address = xmlDoc.GetElementsByTagName("original");
【问题讨论】:
-
使用 Console.Write(responseReader);我得到了完美格式化的 xml 文件,我已经复制粘贴到一个文件并尝试用我的代码手动读取它,它可以工作。
-
另外——你应该在大多数这些对象上使用
using。您可能会发现WebClient比 web-request/response 更容易 - 或者,如其中一个答案所述,只需Load(path)让文档担心它
标签: c# .net xml streamreader