Как получить доступ к URL-адресу атрибута media: thumbnail и media: элементы содержимого в RSS-канале? - PullRequest
0 голосов
/ 22 ноября 2011

Я пытаюсь использовать свой канал Zenfolio RSS, чтобы я мог отображать изображения в канале. Как я могу получить доступ к значению URL для мультимедиа: миниатюры и мультимедиа: элементы содержимого в моей ленте RSS? Я погуглил высоко и низко и не нашел ответа относительно того, как получить доступ к значению URL. Похоже, что без ответа ТАК сообщение .

Примеры элементов:

<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 голосов
/ 22 ноября 2011

У меня есть решение. Я опубликую код здесь немного.

Код:

     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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...