首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

ASP.NET C# 打造 RSS 閱讀器:XmlDocument 解析 Feed 完整實作

     編輯:關於C#

前言

RSS (Really Simple Syndication) 是內容分發的標準格式。本文示範在 ASP.NET 中使用 WebRequest 取得 Feed、XmlDocument 解析 RSS 2.0 XML、擷取標題/連結/描述並輸出至網頁的完整流程。

核心處理函式


public void ProcessRSSItem(string rssURL)
{
    // 1. 建立請求並取得回應串流
    WebRequest req = WebRequest.Create(rssURL);
    WebResponse resp = req.GetResponse();
    Stream rssStream = resp.GetResponseStream();

    // 2. 載入 XML 文件
    XmlDocument doc = new XmlDocument();
    doc.Load(rssStream);

    // 3. 使用 XPath 選取所有 item 節點
    XmlNodeList items = doc.SelectNodes("rss/channel/item");

    string title, link, description;
    for (int i = 0; i < items.Count; i++)
    {
        XmlNode node = items.Item(i);

        // 4. 安全擷取子節點文字
        XmlNode titleNode = node.SelectSingleNode("title");
        title = (titleNode != null) ? titleNode.InnerText : "";

        XmlNode linkNode = node.SelectSingleNode("link");
        link = (linkNode != null) ? linkNode.InnerText : "";

        XmlNode descNode = node.SelectSingleNode("description");
        description = (descNode != null) ? descNode.InnerText : "";

        // 5. 輸出 HTML
        Response.Write("

" + title + "
"); Response.Write(description + "

"); } }

完整 ASPX 頁面


<%@ Page Language="C#" %>



    RSS 閱讀器


    
<% string rssURL = "https://www.codeguru.com/icom_includes/feeds/codeguru/rss-all.xml"; Response.Write("Site: " + rssURL + "
"); ProcessRSSItem(rssURL); Response.Write("
"); rssURL = "https://www.developer.com/icom_includes/feeds/special/dev-5.xml"; Response.Write("Site: " + rssURL + "
"); ProcessRSSItem(rssURL); %>

執行結果

RSS 閱讀器輸出畫面

進階改良方向

  1. 快取機制:使用 HttpRuntime.Cache 或 MemoryCache 快取 Feed XML,避免頻繁請求外部站點。
  2. 非同步處理:ASP.NET 4.5+ 使用 HttpClient + async/await 避免阻塞執行緒。
  3. 支援 Atom/RSS 1.0:偵測根元素 (feed vs rss) 套用不同 XPath。
  4. 錯誤處理:try-catch 捕捉網路逾時、XML 格式錯誤,顯示友善訊息。
  5. XSLT 轉換:將 RSS XML 直接用 XSLT 轉為 HTML,分離邏輯與呈現。
  6. SyndicationFeed 類別:.NET 3.5+ System.ServiceModel.Syndication 提供強型別 Feed 物件模型,更優雅。

結語

以 XmlDocument + XPath 解析 RSS 是最基礎且相容性最高的做法。理解 Feed 結構、命名空間處理、編碼問題,是整合外部內容來源的關鍵。現代專案建議升級使用 SyndicationFeed 或第三方庫(如 CodeHollow.FeedReader)獲得更豐富功能與更佳效能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved