【问题标题】:How to access url attr of media:thumbnail and media:content elements in RSS Feed?如何访问 RSS Feed 中 media:thumbnail 和 media:content 元素的 url attr?
【发布时间】:2012-01-03 10:39:23
【问题描述】:

我正在尝试使用我的 Zenfolio RSS 提要,以便在提要中显示图像。如何访问我的 RSS 提要中 media:thumbnail 和 media:content 元素的 url 值?我用谷歌搜索了高低,但没有找到有关如何访问 url 值的答案。有一个类似的未答复的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

【问题讨论】:

  • 可以用XPath或者WCF的RSS对象解析吗?

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


【解决方案1】:

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

代码:

     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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2018-06-24
    • 1970-01-01
    相关资源
    最近更新 更多