Cấp bậc tác giả:

DOTNET

Hướng dẫn tạo RSS Feed trong Asp.net

Được viết bởi webmaster ngày 03/02/2020 lúc 10:35 AM
Bài viết này sẽ hướng dẫn bạn cách tạo các RSS Feed tuỳ chỉnh cho từng trang.
  • 0
  • 7068

Hướng dẫn tạo RSS Feed trong Asp.net

Bài viết này sẽ hướng dẫn bạn cách tạo các RSS Feed tuỳ chỉnh cho từng trang.

tao-rss-01.jpg

Như mô tả trong hình, các bạn sẽ thấy một biểu tượng RSS trên trang web này. Click vào sẽ thấy các thẻ XML được sắp xếp theo bố cục tuỳ chọn do mình xếp đặt

tao-rss-02.jpg

Bây giờ thực hiện viết code như sau:

Code ASPX.cs

protected void Page_Load(object sender, EventArgs e)
        {
                NewRSS rss = new NewRSS();
                NewRSS.RssChannel channel = new NewRSS.RssChannel();
                channel.Title = "Website Chia sẻ Kiến thức Công Nghệ & Kết nối Cộng đồng Online - DOTNET GROUP";
                channel.Link = "http://dotnet.edu.vn";
                channel.Description = "Chuyên đào tạo và Phát triển công nghệ phần mềm";
                rss.AddRssChannel(channel);
                NewRSS.RssItem item = new NewRSS.RssItem();
            string WhereClause="";
                WhereClause += " IdSubCategories=" + Request.Params["Id"] + " and ";
            DataTable dtb = DataBindSQL.QueryToDataTable("Select Id, IdSubCategories, LoaiChuyenMuc, TieuDe, AnhDaiDien, TomTat, NoiDung, IdTacGia, Nguon, DuongDan, TrangThai, NgayCapNhat From Techs where " + WhereClause + " TrangThai=1 order by NgayCapNhat desc");
                if (dtb.Rows.Count > 0)
                {
                    //Phần liệt kê
                    foreach (DataRow dr in dtb.Rows)
                    {
                        item.Title = "" + dr["TieuDe"];
                        item.Link = String.Format("{0}ChuyenMuc/{1}-{2}.aspx", "http://dotnet.edu.vn/", GetTieuDe(dr["TieuDe"]), dr["Id"]);
                        item.Description = "" + dr["TomTat"];
                        rss.AddRssItem(item);
                    }
                }

                Response.Clear();
                Response.ContentType = "text/xml";
                Response.Write(rss.RssDocument);
                Response.End();
        }

Tạo NewRSS.cs với nội dung như bên dưới
private XmlDocument _rss = null;

        public struct RssChannel
        {
            public string Title;
            public string Link;
            public string Description;
        }


        public struct RssItem
        {
            public string Title;
            public string Link;
            public string Description;
        }

        private static XmlDocument addRssChannel(XmlDocument xmlDocument, RssChannel channel)
        {
            XmlElement channelElement = xmlDocument.CreateElement("channel");
            XmlNode rssElement = xmlDocument.SelectSingleNode("rss");
            rssElement.AppendChild(channelElement);
            XmlElement titleElement = xmlDocument.CreateElement("title");
            titleElement.InnerText = channel.Title;
            channelElement.AppendChild(titleElement);
            XmlElement linkElement = xmlDocument.CreateElement("link");
            linkElement.InnerText = channel.Link;
            channelElement.AppendChild(linkElement);
            XmlElement descriptionElement = xmlDocument.CreateElement("description");
            descriptionElement.InnerText = channel.Description;
            channelElement.AppendChild(descriptionElement);
            // Generator information
            XmlElement generatorElement = xmlDocument.CreateElement("generator");
            generatorElement.InnerText = "Your RSS Generator name and version ";
            channelElement.AppendChild(generatorElement);
            return xmlDocument;
        }

        private static XmlDocument addRssItem(XmlDocument xmlDocument, RssItem item)
        {
            XmlElement itemElement = xmlDocument.CreateElement("item");
            XmlNode channelElement = xmlDocument.SelectSingleNode("rss/channel");
            XmlElement titleElement = xmlDocument.CreateElement("title");
            titleElement.InnerText = item.Title;
            itemElement.AppendChild(titleElement);
            XmlElement linkElement = xmlDocument.CreateElement("link");
            linkElement.InnerText = item.Link;
            itemElement.AppendChild(linkElement);
            XmlElement descriptionElement = xmlDocument.CreateElement("description");
            descriptionElement.InnerText = item.Description;
            itemElement.AppendChild(descriptionElement);
            // append the item
            channelElement.AppendChild(itemElement);
            return xmlDocument;
        }

        public NewRSS()
        {
            _rss = new XmlDocument();
            XmlDeclaration xmlDeclaration = _rss.CreateXmlDeclaration("1.0", "utf-8", null);
            _rss.InsertBefore(xmlDeclaration, _rss.DocumentElement);

            XmlElement rssElement = _rss.CreateElement("rss");
            XmlAttribute rssVersionAttribute = _rss.CreateAttribute("version");

            rssVersionAttribute.InnerText = "2.0";
            rssElement.Attributes.Append(rssVersionAttribute);

            _rss.AppendChild(rssElement);

        }

        public void AddRssChannel(RssChannel channel)
        {
            _rss = addRssChannel(_rss, channel);
        }

        public void AddRssItem(RssItem item)
        {
            _rss = addRssItem(_rss, item);
        }

        public string RssDocument
        {
            get
            {
                return _rss.OuterXml;
            }
        }

        public XmlDocument RssXMLDocument
        {
            get
            {
                return _rss;
            }
        }

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML