解析entityname时发生错误;同时加载XmlDocument

本文关键字:加载 XmlDocument entityname 解析 错误 | 更新日期: 2023-09-27 18:09:34

我已经为ASP编写了一些代码来解析RSS提要。NET c#应用程序,它对我尝试过的所有RSS提要都很好,直到我尝试过Facebook。

我的代码在下面的最后一行失败了…

WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream rss = response.GetResponseStream();
XmlDocument xml = new XmlDocument();
xml.Load(rss);

…在解析EntityName时发生错误。第12行,位置53。"

很难弄清楚XML文件的那个位置是什么,因为整个文件都在一行中,但它直接来自Facebook,所有字符似乎都被正确编码,除了一个字符(♥)。

我并不是特别想重写RSS解析器来使用不同的方法。对于如何绕过这个错误有什么建议吗?有没有办法关闭对文件的检查?

解析entityname时发生错误;同时加载XmlDocument

查看下载的流。它不包含RSS提要,而是包含关于不兼容浏览器的消息的HTML页面。这是因为在像这样下载URL时,没有设置用户代理标头。如果你这样做,你的代码应该工作:

var request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "MyApplication";
var xml = new XmlDocument();
using (var response = request.GetResponse())
using (var rss = response.GetResponseStream())
{
    xml.Load(rss);
}