Вызывание 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, изменить кодировку на то, что вам нужно, а затем попытаться загрузить его.

Другие вопросы по тегам