Я написал фрагмент кода, который использует библиотеку System.ServiceModel.Syndication
для разбора RSS-каналов.
Проблема в том, что для одного из моих каналов (который предоставляется Facebook) я получаю следующую строку в конце ответа, и библиотека синдикации не может проанализировать канал, потому что он говорит, что текст является недопустимым XML, и он говорит, что это из-за этой части:
...
</channel>
<access:restriction relationship="deny" xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" />
</rss>
Я уверен, что здесь есть кое-что, чего мне не хватает, потому что и фид, и библиотека синтаксического анализа созданы крупными компаниями (Facebook и Microsoft соответственно).
Кто-нибудь из вас может помочь? Или, в качестве альтернативы, лучший синтаксический анализатор, который не полагается на достоверность XML?
P.S. Вот мой RSS-канал:
http://www.facebook.com/feeds/page.php?id=202296766494181&format=rss20
Вот как я анализирую ответ фида:
var stringReader = new StringReader(resp);
var xreader = XmlReader.Create(stringReader);
var xfeed = System.ServiceModel.Syndication.SyndicationFeed.Load(xreader);
и исключение, которое я получаю:
System.Xml.XmlException: 'Element' is an invalid XmlNodeType. Line 282, position 4.
в System.Xml.XmlReader.ReadEndElement () ...