如何访问媒体的url attr:缩略图和媒体:RSS Feed中的内容元素?

时间:2011-11-21 23:46:08

标签: asp.net-mvc vb.net asp.net-mvc-3 rss

我正在尝试使用我的Zenfolio RSS提要,以便我可以在Feed中显示图像。如何访问媒体的网址值:缩略图和媒体:我的RSS Feed中的内容元素?我已经googled高低,没有找到关于如何访问网址值的答案。有一个类似的未答复的SO post

元素的例子:

<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"
        />

我的控制器中的代码:

  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

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

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

1 个答案:

答案 0 :(得分:0)

我有我的解决方案。我稍后会在这里发布代码。

代码:

     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

在视图中:

@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