需要获得计数RSS供稿(即每个站点5供稿) [英] need to get Rss Feed in count (i.e per site 5 feeds)

查看:139
本文介绍了需要获得计数RSS供稿(即每个站点5供稿)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从我的数据库获取行业信息,但我得到的所有的饲料,每次当我在DB数据运行我的code为adding.Show我需要显示RSS提要计数以及如何忽略已添加饲料在DB和源$ C ​​$ CI正在显示Repeater控件

 使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.UI程序;
使用System.Web.UI.WebControls;
使用的System.Xml;
使用System.Text;
使用System.Data.SqlClient的;
使用System.Web.UI.HtmlControls;
使用System.Web.Security;
使用System.Data这;公共部分类_Default:System.Web.UI.Page
{
    RssDC rssDC =新RssDC();
    RssBAL rssBAL =新RssBAL();
    保护无效的Page_Load(对象发件人,EventArgs的发送)
    {
        如果(!的IsPostBack){
        //列表<&RSSFeed中GT; rssFeedList =新的List<&RSSFeed中GT;();
        // VAR项目= BlogFeeds(http://rss.cnn.com/rss/edition_americas.rss,3,rssFeedList);
        // VAR ITEM2 = BlogFeeds(http://feeds.bbci.co.uk/news/rss.xml?edition=int#,3,rssFeedList);
        // VAR项目3 = BlogFeeds(http://feeds.reuters.com/reuters/Election2012,3,rssFeedList);
        //Repeater1.DataSource =项目3;
        //Repeater1.DataBind();        BlogFeeds(http://rss.cnn.com/rss/edition_americas.rss,3);        fillRssFeeds();
        }    }    私人无效fillRssFeeds()
    {
        DataSet的DS =新的DataSet();
        DS = rssBAL.GetRssFeeds(rssDC);        Repeater1.DataSource = DS;
        Repeater1.DataBind();
    }
    保护无效BlogFeeds(字符串URL,诠释计数)
    {        尝试
        {            RssDC rssDC =新RssDC();
            XmlDocument的xmlDoc中=新的XmlDocument();
            XmlNodeList中的项目=默认(XmlNodeList中);
            xmldoc.Load(URL);
            项目= xmldoc.SelectNodes(/ RSS /渠道/项目);            //使用XPath只得到项目            的foreach(在项目XmlNode的ITEM1)
            {                的foreach(在item1.ChildNodes XmlNode的节点1)
                {
                    如果(node1.Name ==题)
                    {
                        rssDC.Title = node1.InnerText;
                    }
                    否则,如果(node1.Name ==链接)
                    {
                        rssDC.Link = node1.InnerText;
                    }
                    否则,如果(node1.Name ==GUID)
                    {
                        rssDC.RSS_ID = node1.InnerText;
                    }
                    否则,如果(node1.Name ==说明)
                    {
                        rssDC.Description = node1.InnerText;
                    }
                    否则,如果(node1.Name ==pubdate的)
                    {
                        rssDC.DatePublished = node1.InnerText;
                    }
                }
                rssDC = RssBAL.AddRssFeed(rssDC);
            }        }
        赶上(例外EAX)
        {
            //返回;
        }        //返回rssFeedList;
        //Repeater1.DataSource = rssFeedList;
        //Repeater1.DataBind();
    }


解决方案

如果您只需要一定数量的检索文章的基础上,从BlogFeeds()提供输入参数,你可以尝试这样的事:

 的foreach(在项目XmlNode的ITEM1)
            {
                INT currentIterationIndex = 0;                的foreach(在item1.ChildNodes XmlNode的节点1)
                {
                    如果(currentIterationIndex> =计数-1)
                    {
                        继续; //或折断;可能会更好。
                    }                    如果(node1.Name ==题)
                    {
                        rssDC.Title = node1.InnerText;
                    }
                    否则,如果(node1.Name ==链接)
                    {
                        rssDC.Link = node1.InnerText;
                    }
                    否则,如果(node1.Name ==GUID)
                    {
                        rssDC.RSS_ID = node1.InnerText;
                    }
                    否则,如果(node1.Name ==说明)
                    {
                        rssDC.Description = node1.InnerText;
                    }
                    否则,如果(node1.Name ==pubdate的)
                    {
                        rssDC.DatePublished = node1.InnerText;
                    }                    currentIterationIndex + = 1;
                }
                rssDC = RssBAL.AddRssFeed(rssDC);
            }        }

i am getting Rss Feed from my DB but i am getting all feeds and everytime when i run my code in DB Data is adding.Show i need to show Rss Feed in Count and how to ignore the already added feed in DB and in source code i am showing in Repeater control

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Text;
using System.Data.SqlClient;
using System.Web.UI.HtmlControls;
using System.Web.Security;
using System.Data;

public partial class _Default : System.Web.UI.Page
{
    RssDC rssDC = new RssDC();
    RssBAL rssBAL = new RssBAL();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) { 
        //List<RSSFeed> rssFeedList = new List<RSSFeed>();
        //var item = BlogFeeds("http://rss.cnn.com/rss/edition_americas.rss",  3, rssFeedList);
        //var item2 = BlogFeeds("http://feeds.bbci.co.uk/news/rss.xml?edition=int#",  3, rssFeedList);
        //var item3 = BlogFeeds("http://feeds.reuters.com/reuters/Election2012", 3, rssFeedList);
        //Repeater1.DataSource = item3;
        //Repeater1.DataBind();

        BlogFeeds("http://rss.cnn.com/rss/edition_americas.rss", 3);

        fillRssFeeds();
        }

    }

    private void fillRssFeeds()
    {        
        DataSet ds = new DataSet();
        ds = rssBAL.GetRssFeeds(rssDC);

        Repeater1.DataSource = ds;
        Repeater1.DataBind();
    }
    protected void BlogFeeds(string url,  int count)
    {

        try
        {

            RssDC rssDC = new RssDC();
            XmlDocument xmldoc = new XmlDocument();
            XmlNodeList items = default(XmlNodeList);
            xmldoc.Load(url);
            items = xmldoc.SelectNodes("/rss/channel/item");

            // use XPath to get only items

            foreach (XmlNode item1 in items)
            {

                foreach (XmlNode node1 in item1.ChildNodes)
                {
                    if (node1.Name == "title")
                    {
                        rssDC.Title = node1.InnerText;
                    }
                    else if (node1.Name == "link")
                    {
                        rssDC.Link = node1.InnerText;
                    }
                    else if(node1.Name == "guid")
                    {
                        rssDC.RSS_ID = node1.InnerText;
                    }
                    else if (node1.Name == "description")
                    {
                        rssDC.Description = node1.InnerText;
                    }
                    else if (node1.Name == "pubDate")
                    {
                        rssDC.DatePublished = node1.InnerText;
                    }


                }
                rssDC = RssBAL.AddRssFeed(rssDC);


            }

        }
        catch (Exception eax)
        {
            //return;
        }

        //return rssFeedList;
        //Repeater1.DataSource = rssFeedList;
        //Repeater1.DataBind();
    }

解决方案

If you only want a certain number of articles retrieved, based on the input parameter you supply from BlogFeeds(), you could try something like this:

foreach (XmlNode item1 in items)
            {
                int currentIterationIndex = 0;

                foreach (XmlNode node1 in item1.ChildNodes)
                {
                    if(currentIterationIndex >= count -1)
                    {
                        continue; //or break; would probably be better.
                    }

                    if (node1.Name == "title")
                    {
                        rssDC.Title = node1.InnerText;
                    }
                    else if (node1.Name == "link")
                    {
                        rssDC.Link = node1.InnerText;
                    }
                    else if(node1.Name == "guid")
                    {
                        rssDC.RSS_ID = node1.InnerText;
                    }
                    else if (node1.Name == "description")
                    {
                        rssDC.Description = node1.InnerText;
                    }
                    else if (node1.Name == "pubDate")
                    {
                        rssDC.DatePublished = node1.InnerText;
                    }

                    currentIterationIndex += 1;
                }
                rssDC = RssBAL.AddRssFeed(rssDC);


            }

        }

这篇关于需要获得计数RSS供稿(即每个站点5供稿)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆