在RSS Feed Asp.Net中显示图像

时间:2016-04-06 16:17:43

标签: asp.net image rss feed

我正在尝试从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 />
    <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或模态。提前谢谢!

1 个答案:

答案 0 :(得分:0)

以下是显示来自RSS Feed的图片的完整解决方案:

<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/");
  }

}

如果您的Feed没有多张图片,则可以使用以下单个图片代码替换转发器:

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