SyndicationFeed – Đọc RSS với .Net 4.0 trở nên đơn giản


Sử dụng thư viện System.ServiceModel với 02 lớp

System.ServiceModel.Syndication.SyndicationFeed;
System.ServiceModel.Syndication.SyndicationItem;

Code ví dụ

List<SyndicationItem> rss = new List<SyndicationItem>(); 
string url = "http://vnexpress.net/rss/the-thao.rss";
XmlReader xmlreader = XmlReader.Create(url);
SyndicationFeed rssfeed = SyndicationFeed.Load(xmlreader);
xmlreader.Close();

foreach (SyndicationItem item in rssfeed.Items)
{
    rss.Add(item);
}

Demo ví dụ:
Untitled

Untitled1

Mã nguồn demo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.ServiceModel.Syndication;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        List<SyndicationItem> rss;
        public Form1()
        {
            InitializeComponent();
            this.listBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listBox1_MouseDoubleClick);
            this.button1.Click += new System.EventHandler(this.button1_Click);
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void load()
        {
            rss = new List<SyndicationItem>(); 
            string url = textBox1.Text;
            XmlReader xmlreader = XmlReader.Create(url);
            SyndicationFeed rssfeed = SyndicationFeed.Load(xmlreader);
            xmlreader.Close();

            foreach (SyndicationItem item in rssfeed.Items)
            {
                rss.Add(item);
                listBox1.Items.Add(item.Title.Text);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            load();
        }

        private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (listBox1.SelectedItem == null)
                return;

            if (e.Clicks == 2)
            {
                Process.Start(rss[listBox1.SelectedIndex].Links[0].Uri.ToString());
            }
        }

    }
}
Advertisements

One thought on “SyndicationFeed – Đọc RSS với .Net 4.0 trở nên đơn giản

Phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s