使用syndicationitem获取自定义rss feed item元素?

时间:2017-04-27 00:19:27

标签: c#

我有这样的RSS提要:

<item>
<title>
Ellen celebrates the 20th anniversary of coming out episode
</title>
<link>
http://www.dailymail.co.uk/video/tvshowbiz/video-1454179/Ellen-celebrates-20th-anniversary-coming-episode.html?ITO=1490&ns_mchannel=rss&ns_campaign=1490
</link>
<description>
Ellen celebrates 20th anniversary of coming out episode on her old sitcom 'Ellen'. Ellen said she cried during rehearsals but urged everyone to stay true to themselves and it will benefit you in the long term.
</description>
<enclosure url="http://i.dailymail.co.uk/i/pix/2017/04/27/00/3FA409EA00000578-0-image-m-21_1493249529333.jpg" type="image/jpeg" length="7972"/>
<pubDate>Thu, 27 Apr 2017 00:45:14 +0100</pubDate>
<guid>
http://www.dailymail.co.uk/video/tvshowbiz/video-1454179/Ellen-celebrates-20th-anniversary-coming-episode.html?ITO=1490&ns_mchannel=rss&ns_campaign=1490
</guid>
<media:description/>
<media:thumbnail url="http://i.dailymail.co.uk/i/pix/2017/04/27/00/3FA409EA00000578-0-image-m-21_1493249529333.jpg" width="154" height="115"/>
<media:credit scheme="urn:ebu">YouTube</media:credit>
<media:content url="http://video.dailymail.co.uk/video/mol/2017/04/26/4464646762446275941/1024x576_MP4_4464646762446275941.mp4" type="video/mp4" medium="video" duration="245" lang="en"/>
</item>

我正在尝试获取media:content的url值,当我循环遍历联合项目时:

            foreach (SyndicationItem item in feed.Items)
            {

                foreach (SyndicationElementExtension extension in item.ElementExtensions)
                {
                    XElement ele = extension.GetObject<XElement>();
                    MessageBox.Show(ele.Value);
                }


            }

我得到空白数据,如何获取媒体内容的网址?

2 个答案:

答案 0 :(得分:8)

你试过了吗?

XElement ele = extension.GetObject<XElement>();
if (ele.Name.LocalName == "content")
{
   MessageBox.Show(ele.Attribute("url").Value);
}

答案 1 :(得分:0)

foreach (var item in feed.Items)
{
    var content = item.ElementExtensions
                      .FirstOrDefault(ext => ext.OuterName == "content")
                      .GetObject<XmlElement>().InnerText    
}