2016-04-06 2 views
1

Я пытаюсь отобразить изображение из RSS-ленты. На данный момент я отображая название, дату и описание с помощью кода:Показать изображение с помощью RSS-канала Asp.Net

<asp:DataList ID="DataList1" runat="server" DataSourceID="XmlDataSource1"> 
<ItemTemplate> 
    <div class="jumbotron"> 
    <h2><%# XPath("title") %></h2><br /> 
    <h3><%# XPath("pubDate") %></h3><br /> 
    <h3><%# XPath("description") %></h3><br /> 
    <a class ="btn btn-primary btn-lg" Target="_blank" href="<%# XPath("link") %>">Read More On This Story</a> 
     </div> 
    <hr /> 
</ItemTemplate> 

<asp:XmlDataSource ID="XmlDataSource1" runat="server" 
DataFile="http://feeds.bbci.co.uk/news/education/rss.xml" 
XPath="rss/channel/item"> 

После того как я добавить этот образ, я ищу, чтобы отобразить каждую историю в самой странице , На данный момент он открывает новую вкладку. Я ищу использовать iframe или модальный. Заранее спасибо!

+0

Я вижу, что вы использовали ссылку в теге. Ничего не связано с отображением изображения. В соответствии с вашим сообщением вы хотите отобразить изображение из rss, правильно? Не могли бы вы попытаться использовать элемент img и попробовать. –

ответ

0

Здесь представляет собой комплексное решение для показа изображений из фида RSS:

<asp:DataList ID="DataList1" runat="server" DataSourceID="XmlDataSource1"> 
    <ItemTemplate> 
    <div class="jumbotron"> 
    <h2><%# XPath("title") %></h2> 
    <br /> 
    <h3><%# XPath("pubDate") %></h3> 
    <br /> 
    <h3><%# XPath("description") %></h3> 
    <br /> 
    <asp:Repeater runat="server" ID="_subitemsRepeater" 
     EnableViewState="false" 
     DataSource='<%# XPathSelect("media:thumbnail", XmlNamespaceManager) %>'> 
     <ItemTemplate> 
     <img src="<%# ((System.Xml.XmlNode)Container.DataItem).Attributes["url"].Value %>" /> 
     <br /> 
     </ItemTemplate> 
     </asp:Repeater> 
     <br /> 
     <a class="btn btn-primary btn-lg" target="_blank" href="<%# XPath("link") %>">Read More On This Story</a> 
     </div> 
     <hr /> 
</ItemTemplate> 
</asp:DataList> 
<asp:XmlDataSource ID="XmlDataSource1" runat="server" 
    DataFile="http://feeds.bbci.co.uk/news/education/rss.xml" 
    XPath="rss/channel/item" /> 

В коде позади:

public partial class _Default : Page 
{ 
    protected XmlNamespaceManager XmlNamespaceManager { get; set; } 

    protected void Page_Load(object sender, EventArgs e) 
    { 
    XmlNamespaceManager = new XmlNamespaceManager(XmlDataSource1.GetXmlDocument().NameTable); 
    XmlNamespaceManager.AddNamespace("media", "http://search.yahoo.com/mrss/"); 
    } 

} 

Если фид не несколько изображений вы можете заменить повторитель с одно изображение изображения как это:

<img src="<%# XPath("media:thumbnail/@url", XmlNamespaceManager) %>" />