如何从多个网站获取 RSS 源

2024-03-25

我正在为我的网站获取 RssFeeds,并且它正在显示。但是如何从多个站点获取 RSS Feed,并且需要从第一个站点的三个 feed、第二个站点的三个 feed 等依次显示;主要来自 CNN、BBC

这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    BlogFeeds();
}
protected void BlogFeeds()
{
    try
    {
        XmlDocument xmldoc = new XmlDocument();
        XmlNodeList items = default(XmlNodeList);
        xmldoc.Load("http://rss.cnn.com/rss/edition_americas.rss");
        xmldoc.Load("http://feeds.bbci.co.uk/news/rss.xml?edition=int#");
        items = xmldoc.SelectNodes("/rss/channel/item");
        // use XPath to get only items
        string title = string.Empty;
        string link = string.Empty;
        string desc = string.Empty;
        string pubDesc = string.Empty;
        string st = "";
        int i = 0;

        foreach (XmlNode item1 in items)
        {
            foreach (XmlNode node1 in item1.ChildNodes)
            {
                if (node1.Name == "title")
                {
                    title = node1.InnerText;
                }
                if (node1.Name == "link")
                {
                    link = node1.InnerText;
                }
                if (node1.Name == "description")
                {
                    desc = node1.InnerText;
                    if (desc.Length > 90)
                    {
                        pubDesc = desc.Substring(0, 90);
                    }
                    else
                    { pubDesc = desc; }
                }
            }
            st += "<a target='_blank' href='" + link + "'>" + title + "</a><br />" + pubDesc + " ... " + "<div style='border-bottom: 1px dotted #84acfd; padding-top:10px;'></div></br>";
            i++;
            if (i == 3)
                break;
        }
        lblBlogOutput.Text = st;
    }
    catch (Exception eax)
    {
        return;
    }
}

}


您不能调用 .Load() 并将其附加到 XmlDocument。

看看这个修改后的代码版本:

  protected void Page_Load(object sender, EventArgs e)
        {
            BlogFeeds();
        }
        protected void BlogFeeds()
        {

            try
            {
                XmlDocument xmldoc = new XmlDocument();
                XmlNodeList items = default(XmlNodeList);

                xmldoc.Load("http://rss.cnn.com/rss/edition_americas.rss");
                items = xmldoc.SelectNodes("/rss/channel/item");
                ReadTopArticles(items);

                xmldoc.Load("http://feeds.bbci.co.uk/news/rss.xml?edition=int#");
                items = xmldoc.SelectNodes("/rss/channel/item");
                ReadTopArticles(items);

            }
            catch (Exception eax)
            {
                return;
            }
        }
        private void ReadTopArticles(XmlNodeList items)
        {
            string title = string.Empty;
            string link = string.Empty;
            string desc = string.Empty;
            string pubDesc = string.Empty;
            string st = "";
            int i = 0;

            foreach (XmlNode item1 in items)
            {
                foreach (XmlNode node1 in item1.ChildNodes)
                {
                    if (node1.Name == "title")
                    {
                        title = node1.InnerText;
                    }
                    if (node1.Name == "link")
                    {
                        link = node1.InnerText;
                    }
                    if (node1.Name == "description")
                    {
                        desc = node1.InnerText;
                        if (desc.Length > 90)
                        {
                            pubDesc = desc.Substring(0, 90);
                        }
                        else
                        { pubDesc = desc; }
                    }
                }
                st += String.Format("<a target='_blank' href='{0}'>{1}</a><br />{2} ... <div style='border-bottom: 1px dotted #84acfd; padding-top:10px;'></div></br>", link, title, pubDesc);
                i += 1;
                if (i == 3)
                    break;
            }
            lblBlogOutput.Text += st;
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从多个网站获取 RSS 源 的相关文章

随机推荐

  • 如何使用 shell 脚本连接 2 个 csv 文件?

    我正在尝试制作一个 shell 脚本 它将通过以下方式组合两个 csv 文件 我有两个 csv 文件 f1 csv 和 f2 csv f1 csv的格式为 startId endId roomNum f2 csv 的格式如下 startId
  • 使用 Wget 跳过成功下载的文件

    所以我有这个 Bash 子例程来使用 wget 下载文件 现在我的问题是如何跳过成功下载的文件 该脚本会下载很多文件 一旦下载失败 它会重新下载所有文件 覆盖那些从一开始就成功的下载 可能会因为重新下载而不完整 那么如何跳过那些下载成功的文
  • Heroku 上的媒体文件

    如果我在 Heroku 上托管一个小型 Django 网站 并且只使用一台 dyno 那么是否可以在该服务器上上传媒体文件 或者我是否必须使用 AWS S3 存储来存储媒体文件 媒体存储还有哪些其他替代方案 不 在 Heroku 文件系统上
  • 如何以编程方式检查、获取和设置 Android 手机中的触摸设置?

    是否可以通过编程方式获取 Android 中的各种触摸设置 例如 gt 拨号盘按键音 gt 触摸声音 gt 屏幕锁定声音 gt 触摸时振动 我尝试访问 System Settings 中的各种常量 但我没有看到任何提及触摸设置的常量 任何人
  • pImpl 是否从根本上解决了 C++ DLL 问题?

    我正在尝试从带有 stl 成员的 DLL 中导出 C 类 这是我的主要课程 class MATHFUNCSDLL API MyMathFuncsImpl public std vector
  • 如何限制对 Firestore 中用户拥有的文档的写入?

    我有一些文章 每篇文章都有一个参考字段到个人资料document撰写该特定文章的作者的姓名 经过身份验证的用户 使用 Firebase 的身份验证 将与这些配置文件关联 仅当当前登录的用户拥有该文章时 如何才能使这些文章可由该用户编辑 在
  • 构造函数中具有实例名称知识的 Matlab 类

    我想要一个类 在其构造函数中可以了解其实例名称 提取为字符串 目前 我像这样提取名称 classdef mysession methods Access public function this mysession varargin thi
  • 在 Rails 5+ 中禁用 sprocket 资源缓存

    我已经尝试了很多禁用 Rails 中的 sprocket 资源缓存 但没有成功 我尝试配置development rb 但它根本不起作用 我正在使用此代码来禁用缓存生成 config assets cache store null stor
  • 更改最后一个
  • 的 CSS
  • 我想知道是否有某种方法可以更改最后一个 CSS 属性li在使用 CSS 的列表中 我已经研究过使用 last child 但这看起来确实有问题 我无法让它为我工作 如有必要 我将使用 JavaScript 来完成此操作 但我想知道是否有人可
  • 如何解释 Seaborn distplot 的轴

    Snippet plt figure figsize 10 5 plt xticks np arange 0 11 1 sns distplot 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 kde F
  • 如何增加LVL缓存有效时间?

    我已经在我的应用程序中实施了 LVL 服务器托管策略 我知道lvl服务器响应会在设备中缓存一段时间 因此用户可以在没有互联网连接的情况下使用应用程序 然后lvl使用缓存的许可证 我想知道这个期限到底有多长以及如何延长它 基本上 lvl 我已
  • 用于在不同工作簿中选择范围的 VBA 对话框

    我想允许用户选择可能位于不同工作簿中的范围 我尝试使用 inputbox type 8 来执行此操作 它可以选择工作簿中的数据 但不允许我在不同的工作簿中选择范围 因此我想要一个允许我执行此任务的对话框 由于我有空 我为您创建了一个示例 创
  • .JSchException:数据包损坏

    我在 RHEl 6 上使用 Jsch 0 1 51 和 Jdk 1 7 51 在与远程计算机进行会话时 我收到以下异常 com jcraft jsch JSchException Packet corrupt at com jcraft j
  • Python venv env 失败 - [WinError 2] 系统找不到指定的文件

    我在 Windows 10 计算机上安装了最新版本的 Python 3 8 2 我以前有Python 3 7 我将其卸载并确认在系统路径中不再引用它 安装最新版本后 我以管理员身份运行CMD py m venv env 我收到此错误 错误
  • 添加到Python中正在迭代的双端队列?

    我在 Python 中有一个双端队列 正在对其进行迭代 有时 当我进行交互时 双端队列会发生变化 从而产生RuntimeError deque mutated during iteration 如果这是一个 Python 列表而不是双端队列
  • 如何部署Tomcat的示例websocket应用程序?

    我正在尝试了解如何部署 Apache Tomcat 7 中引用的示例WebSocket 操作方法 http tomcat apache org tomcat 7 0 doc web socket howto html page 应用程序开发
  • 根据室外温度设置背景颜色

    嘿哦 所以 我有一个温度小部件要在我正在进行的项目上实现 没有什么特别困难的 我有一个免费的 API 来检索我需要的数据等 但是 和我一起工作的可爱设计师有一个颜色特征 我对此一无所知 他会根据当前的天气温度来定义背景颜色 我的意思是如果温
  • 在 ReactJS 中禁用 ContextMenu

    第一篇文章在这里 所以希望我能以最有帮助的方式提出这个问题 我对编码还很陌生 在努力推动自己的过程中 我决定尝试使用 React 来重新创建扫雷 而不是使用任何教程 我已经获得了很多功能 但我真的停留在这部分上 我正在使用事件侦听器 onC
  • 如何快速本地化故事板?

    我正在尝试使用 Swift 3 和 Xcode 8 1 本地化我的应用程序 我正在尝试使用 Storyboard main strings German 并以编程方式使用来本地化应用程序 NSLocalizedString 我能够使用编程方
  • 如何从多个网站获取 RSS 源

    我正在为我的网站获取 RssFeeds 并且它正在显示 但是如何从多个站点获取 RSS Feed 并且需要从第一个站点的三个 feed 第二个站点的三个 feed 等依次显示 主要来自 CNN BBC 这是我的代码 protected vo