Curso Windows Phone – Lendo elementos não padrão em um SyndicationItem

Olá pessoal, tudo bom?

Esse post vai para quem está lendo conteúdos RSS através da classe SyndicationFeed do namespace System.ServiceModel.Syndication

Supondo que você tenha um retorno XML parecido com a estrutura abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title>Universidade do Oeste Paulista</title>
        <link>http://www.unoeste.br</link>
        <description>Universidade do Oeste Paulista - Unoeste - Presidente Prudente, São Paulo</description>
        <language>pt-br</language>
        <lastBuildDate>Fri, 14 Dec 2012 20:06:13 -0300</lastBuildDate>
        <image>
            <url>http://www.unoeste.br/site/_imagens/topo_logo_unoeste.png</url>
            <title>Universidade do Oeste Paulista</title>
            <link>http://www.unoeste.br</link>
        </image>
        <ttl>60</ttl>
        <item>
            <title>Projeto Árvore da Solidariedade entrega presentes em escola</title>
            <link>http://www.unoeste.br/site/destaques/Noticias.aspx?id=6921</link>
            <description><i>Arrecadação de roupas, calçados e brinquedos novos fez a alegria de 411 alunos da Escola Municipal Juracy Meneses Peralta</i>
“É uma sensação de dever cumprido. Ver a alegria no rosto dessas crianças e contribuir com um Natal solidário para mais de 400 famílias é gratificante”. As palavras ...</description>
            <guid>http://www.unoeste.br/Noticias.aspx?id=6921</guid>
            <pubDate>Fri, 14 Dec 2012 17:20:00 -0300</pubDate>
            <media:thumbnail url="http://www.unoeste.br/site/destaques/images/6921p.jpg" xmlns:media="http://search.yahoo.com/mrss/" />
            <media:content url="http://www.unoeste.br/images/6921g.jpg" type="image/jpeg" width="430" height="280" xmlns:media="http://search.yahoo.com/mrss/" />
        </item>
        ....
        ....
   </channel>
</rss>

Suponha ainda que você tenha um objeto da classe SyndicationItem chamado sItem que represente cada feed recebido e nele você precise acessar o conteúdo da tag <media:thumbnail url=”http://www.unoeste.br/images/6921p.jpg ” xmlns:media=”http://search.yahoo.com/mrss ” /> para obter a url corresponde à imagem desejada. Veja abaixo:


...
string url = &quot;&quot;;
if (sItem.ElementExtensions.Count &gt; 0)
{
  if (sItem.ElementExtensions.Where(t =&gt; t.OuterName == &quot;thumbnail&quot;).Count() != 0)
     url = sItem.ElementExtensions.Where(t =&gt; t.OuterName == &quot;thumbnail&quot;).First().GetObject&lt;XElement&gt;().Attribute(&quot;url&quot;).Value;
}
...

Ufa, finalmente teríamos na string url o valor desejado!

Grande abraço a todos,
Eduardo Henrique Rizo

[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]

Fontehttp://www.lerra.net/post/2012/05/09/Reading-non-standard-elements-in-a-SyndicationItem-with-SyndicationFeed.aspx

Post relacionado:

Curso Windows Phone Gratuíto – Vários tópicos

1 comentário em “Curso Windows Phone – Lendo elementos não padrão em um SyndicationItem”

  1. Pingback: Free: Curso Windows Phone – Vários tópicos « Blog do Eduardo H. Rizo

Deixe um comentário