如何访问的URL媒体ATTR:缩略图和媒体:在RSS订阅的内容元素? [英] How to access url attr of media:thumbnail and media:content elements in RSS Feed?

查看:104
本文介绍了如何访问的URL媒体ATTR:缩略图和媒体:在RSS订阅的内容元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图消耗我的Zenfolio RSS提要,这样我可以显示在饲料中的图像。我怎样才能访问媒体的URL值:缩略图和媒体:内容元素在我的RSS源?我用Google搜索高,低,未发现有关如何访问URL值答案。有一个类似的解答<一个href=\"http://stackoverflow.com/questions/7929314/how-to-read-a-image-url-from-a-rss-with-syndicationfeed\">SO帖子。

元件的例子:

 &LT;媒体:缩略图URL =htt​​p://riderdesign.net/img/s11/v35/p449020235-2.jpg
                     宽度=400
                     高度=225
        /&GT;
  &LT;媒体:内容URL =htt​​p://riderdesign.net/img/s11/v35/p449020235-2.jpg
                   类型=图像/ JPEG中等=形象
                   宽度=400
                   高度=225
        /&GT;

我的code在我的控制器:

 公共功能饲料()为的ActionResult
            昏暗feedurl作为字符串=htt​​p://riderdesign.net/recent.rss
            使用X = XmlReader.Create(feedurl)
                昏暗 - [R作为SyndicationFeed = SyndicationFeed.Load(X)
                返回查看(R)
            使用完
        结束功能

在我看来,我有@ModelType System.ServiceModel.Syndication.SyndicationFeed以及

  @For每个我在ViewData.Model.Items
    @ i.Title.text @&LT; BR /&GT;
    &LT;! - 我该怎么办在这里获得url值 - &GT?;
下一个


解决方案

我有我的解决方案。我会在这里发表code在一个位。

code:

 公共功能饲料()为的ActionResult
        昏暗feedurl作为字符串=htt​​p://riderdesign.net/p319394411/recent.rss
        使用X = XmlReader.Create(feedurl)
            昏暗的R = XDocument.Load(X)
            昏暗mediapfx作为的XNamespace =htt​​p://search.yahoo.com/mrss/            昏暗毫升=从项目在r.Descendants(mediapfx +内容)选择项目
            昏暗medialist中=从项在r.Descendants(项目),选择New MediaImage随着{
             .ID = item.Element(GUID)。值,.ImageUrl = TryGetAttributeValue(item.Element(mediapfx +内容),URL)}拿5
            返回查看(medialist中)        使用完    结束功能    专用功能TryGetAttributeValue(BYVAL XE作为的XElement,BYVAL属性作为字符串)作为字符串
        如果XE IsNot运算没有AndAlso运算xe.Attribute(属性)状态并没有任何再
            返回xe.Attribute(属性).value的
        其他
            什么都不返回
        万一
    结束功能命名空间RiderDesignMvcBlog.Core.ViewModels
    公共类MediaImage        公共属性ID()作为字符串        公共财产的ImageUrl()作为字符串    末级
最终命名空间

在视图:

  @ModelType的IEnumerable(中RiderDesignMvcBlog.Core.ViewModels.MediaImage)@ code
    ViewData的(标题)=频道
    布局=〜/查看/共享/ _Layout4.vbhtml
结束code&LT; H2&GT;饲料&LT; / H&GT;
@For每个我在模型
    @&所述; IMG SRC =@ i.ImageUrl/&GT;下一个

I am attempting to consume my Zenfolio RSS feed so that i can display the images in the feed. How can i access the url value of the media:thumbnail and media:content elements in my RSS feed? I have googled high and low and not found an answer regarding how to access the url value. There was a similiar unanswered SO post.

Examples of the elements:

<media:thumbnail url="http://riderdesign.net/img/s11/v35/p449020235-2.jpg" 
                     width="400"
                     height="225"
        />
  <media:content url="http://riderdesign.net/img/s11/v35/p449020235-2.jpg"
                   type="image/jpeg" medium="image"
                   width="400"
                   height="225"
        />

My code in my controller:

  Public Function Feed() As ActionResult
            Dim feedurl As String = "http://riderdesign.net/recent.rss"
            Using x = XmlReader.Create(feedurl)
                Dim r As SyndicationFeed = SyndicationFeed.Load(x)
                Return View(r)
            End Using
        End Function

In my view i have @ModelType System.ServiceModel.Syndication.SyndicationFeed and

@For Each i In ViewData.Model.Items
    @i.Title.text  @<br /> 
    <!--What do i do here to get the url values?-->
Next

解决方案

I have my solution. I'll post code here in a bit.

Code:

     Public Function Feed() As ActionResult
        Dim feedurl As String = "http://riderdesign.net/p319394411/recent.rss"
        Using x = XmlReader.Create(feedurl)
            Dim r = XDocument.Load(x)
            Dim mediapfx As XNamespace = "http://search.yahoo.com/mrss/"

            Dim ml = From item In r.Descendants(mediapfx + "content") Select item
            Dim medialist = From item In r.Descendants("item") Select New MediaImage With {
             .Id = item.Element("guid").Value, .ImageUrl = TryGetAttributeValue(item.Element(mediapfx + "content"), "url")} Take 5
            Return View(medialist)

        End Using

    End Function

    Private Function TryGetAttributeValue(ByVal xe As XElement, ByVal attribute As String) As String
        If xe IsNot Nothing AndAlso xe.Attribute(attribute) IsNot Nothing Then
            Return xe.Attribute(attribute).Value
        Else
            Return Nothing
        End If
    End Function



Namespace RiderDesignMvcBlog.Core.ViewModels
    Public Class MediaImage

        Public Property Id() As String

        Public Property ImageUrl() As String

    End Class
End Namespace

In view:

@ModelType IEnumerable(Of RiderDesignMvcBlog.Core.ViewModels.MediaImage)

@Code
    ViewData("Title") = "Feed"
    Layout = "~/Views/Shared/_Layout4.vbhtml"
End Code

<h2>Feed</h2>
@For Each i In Model
    @<img src=" @i.ImageUrl" />

Next

这篇关于如何访问的URL媒体ATTR:缩略图和媒体:在RSS订阅的内容元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆