Вызывание SyndicationFeed.Load "Элемент" является недопустимым XmlNodeType.
Я пытаюсь использовать RSS-канал, используя этот код:
var reader = XmlReader.Create("http://www.news-herald.com/section?template=RSS&profile=4002042&mime=xml");
var syndicationFeed = SyndicationFeed.Load(reader);
Но это выдает ошибку:
"Элемент" является недопустимым XmlNodeType. Строка 16, позиция 6.
Который указывает на строку под самозакрывающимся тегом "source":
<source url="http://www.news-herald.com/general-news/20141219/new-richmond-heights-website-expected-to-be-ready-by-april"/>
<description><![CDATA[<p>Richmond Heights is officially replacing the website it has been using since 2006. </p><p>City Council members approved a contract with Cuyahoga County Department of Information Technology at its most recent meeting to design a new website for the city. </p><p>It is projected to cost $5,293 with the contract not to exceed $7,000.</p>]]></description>
Если я вручную изменю исходные теги до "" и использую этот тестовый файл, он будет обрабатываться правильно.
Могу ли я заставить SyndicationFeed или XmlReader сделать это автоматически для меня?
Есть ли что-то лучшее, что я должен использовать для обработки каналов RSS/atom?
1 ответ
Источник, похоже, не подтверждает, что может быть проблемой.
Проверьте другой источник RSS, чтобы убедиться, что это возможно.
The feed appears to be encoded as "UTF-8", but the server is reporting "iso-8859-1"
Вы можете попробовать прочитать исходный код в XDocument, изменить кодировку на то, что вам нужно, а затем попытаться загрузить его.