多年来,我一直在使用 xmlDataReader 来读取 RSS,但突然之间,我使用的两个提要引入了一个额外的行,这会导致 xmlDataReader 解析器出错。
问题是这里的第二行与第一行冲突:
<link>http://www.eventjobsearch.co.uk/jobsrss/</link>
<atom:link href="http://www.eventjobsearch.co.uk/jobsrss/" rel="self" type="application/rss+xml"/>
解析器认为 atom:link 元素是 link 元素的副本。我个人并不需要 atom:link 行,但是当我使用流时,我看不到任何删除此行或删除冒号的方法(这将解决问题)。
我怎样才能摆脱流中的冒号,以便内置解析器再次工作?
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(WebConfigurationManager.AppSettings["XmlJobsFeedUrl"]);
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)";
WebResponse response = req.GetResponse();
Stream stream = response.GetResponseStream();
XmlTextReader xmlTextReader = new XmlTextReader(stream);
DataSet jobs = new DataSet("Jobs");
jobs.ReadXml(xmlTextReader);