【问题标题】:Display an image from within an RSS Feed Asp.Net在 RSS Feed Asp.Net 中显示图像
【发布时间】:2016-04-06 16:17:42
【问题描述】:

我正在尝试显示来自 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 或模态框。提前致谢!

【问题讨论】:

  • 我看到您在标签中使用了链接。与显示图像无关。根据您的帖子,您希望显示来自 rss 的图像,对吗?请您尝试使用 img 元素并尝试一下。

标签: asp.net image rss feed


【解决方案1】:

这是显示来自您的 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) %>" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    相关资源
    最近更新 更多