2013-07-17 3 views
0

Это мой код:Как я могу десериализовать RSS?

var objectText = XmlReader.Create(requestedURL); 
XmlSerializer mySerializer = new XmlSerializer(typeof(InstagramItems)); 
var instagramItems = (InstagramItems)mySerializer.Deserialize(objectText); 

но, кажется, он не может работать с RSS (которые являются "X более или менее"):

Server Error - <rss xmlns=''> was not expected. 

Как я могу это сделать? Я считаю, что есть библиотека .NET без использования плагинов третьей части.

Часть RSS:

<?xml version="1.0" encoding="UTF-8"?> 
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"> 
<channel> 
    <title>Photos tagged as "example" on Instagram</title> 
    <link>http://instagram.com</link> 
    <description>Photos tagged as "example" on Instagram</description> 
    <atom:link href="http://instagram.com/tags/example/feed/recent.rss" rel="self" /> 
</channel> 
+0

Не могли бы вы опубликовать кусок XML документ? –

ответ

2

Шаг 1: Загрузите RSS XSD: http://www.thearchitect.co.uk/schemas/rss-2_0.xsd

Шаг 2: Используйте xsd.exe для генерации типа RSS на основе схемы

Шаг 3: Если objectText является только документом RSS, просто замените только что созданный тип RSS для InstagramITems в приведенном выше коде.

Шаг 3a: Если текстовый объект смешан Instagram и RSS-код, а затем использовать DataContractSerializer и предварительно зарегистрировать как Instagram и типы RSS с DataContractSerializer перед попыткой десериализации

+0

Я получаю RSS от внешних ресурсов, я не могу это сделать! Я просто загружаю и обрабатываю ... – markzzz

+0

Вы не меняете RSS xml. Вы используете xsd для генерации типа C#, который rss может быть десериализован, в данном случае RssItem. –

1

XmlSerializer работает с конкретным форматом XML, если вы снабжением любого другого формата другого, то какой он ожидает, что metioned исключение будет throwned.

Вы можете разобрать XML Мануалы и создать InstagramItems из разобранного XML, я бы recommed с помощью LINQ к XML-вот пример http://social.msdn.microsoft.com/Forums/vstudio/en-US/e38e69ac-d325-4cc4-bdf7-bc940e19e63f/read-xml-and-create-objects-using-linq

Смежные вопросы