Heim >Backend-Entwicklung >XML/RSS-Tutorial >Codebeispiel zum manuellen Generieren von Kommentar-RSS
Die Diskussion auf dem Blog war in letzter Zeit lebhaft und es tauchten nach und nach wertvolle Kommentare auf. Manchmal möchten wir die RSS-Kommentare eines bestimmten Artikels abonnieren, aber leider verfügt der Blogpark derzeit nicht über diese Funktion. Registrierte Benutzer können auf den Link „Antwort abonnieren“ unterhalb des Kommentarfelds klicken, um E-Mails zu erhalten, wenn neue Kommentare erscheinen. Schade, dass anonyme Benutzer ständig auf dem Laufenden bleiben müssen, um auf das aufmerksam zu machen, was kürzlich besprochen wurde. Aber wer sind wir? Wir sind Programmierer und dieses Hindernis sollte für uns nichts weiter als eine triviale Angelegenheit sein. Erstellen Sie Ihre eigene Website, rufen Sie Seitendaten ab, analysieren Sie HTML und geben Sie es als RSS aus – so einfach ist das.
Lao Zhao gab dafür das einfachste Beispiel. Sie können die Kommentare zu jedem Artikel auf http://jeffreyzhao.cnblogs.com abonnieren. Da es sich nur um ein einfaches persönliches Toolprogramm handelt, werden Leistung, Skalierbarkeit, Skalierbarkeit und Fehlertoleranz nicht berücksichtigt und alle „Best Practices“ wie Unit-Tests, Abhängigkeitsinjektion usw. werden verworfen . . Mit einem Wort: Es ist so einfach wie es ist.
Dieses Beispiel besteht aus zwei Gruppen Der erste Teil ist eine statischeHTML-Seite, die basierend auf der Artikel-URL generiert und an diese weiterleitet seinen RSS-Link. Nur ein paar Zeilen HTML und JavaScript:
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>博客园RSS</title> <script language="javascript" type="text/javascript"> function goToCommentRss(url) { window.location = "CommentRss.ashx?url=" + encodeURIComponent(url); } </script> </head> <body> <textarea id="url" cols="50" rows="10"></textarea><br /> <input type="button" value="Comment RSS" onclick="goToCommentRss(document.getElementById('url').value)" /> </body> </html>
CommentRss.ashx gibt den RSS des Kommentars für uns aus. Sein Code lautet wie folgt:
public class CommentRss : IHttpHandler{ public void ProcessRequest(HttpContext context) { string url = context.Request.QueryString["url"]; WebClient webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; string html = webClient.DownloadString(url); context.Response.ContentType = "text/xml"; context.Response.ContentEncoding = Encoding.UTF8; SyndicationFeed feed = GetRssFeed(url, html); Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(feed); XmlWriter rssWriter = XmlWriter.Create(context.Response.Output); rssFormatter.WriteTo(rssWriter); rssWriter.Close(); } private static SyndicationFeed GetRssFeed(string url, string html) { ... } public bool IsReusable { get { return false; } } }
Tatsächlich hat das .NET Framework zu viele nützliche Tools für uns vorbereitet, wir müssen sie nur zusammenfügen. Mit der WebClient-Klasse können beispielsweise drei Codezeilen den HTML-Code der Seite herunterladen. Dann erhalten wir über die GetRssFeed-Methode ein SyndicationFeed-Objekt und geben es dann über Rss20FeedFormatter aus. SyndicationFeed und Rss20FeedFormatter sind beide die Klassenbibliothek, die mit .NET 3.5 geliefert wird und im System.ServiceModel.SyndicationNamespaceModel.dll-Assembly platziert ist . 🎜>, Sie können problemlos XML im Atom 1.0- oder RSS 2.0-Format für unsere Verwendung lesen oder generieren. Weitere Informationen finden Sie in diesem Bericht auf der chinesischen InfoQ-Website: WCF's WebProgrammingModelResources.
Der Schlüssel zu GetRssReed besteht darin, die HTML--Zeichenfolge zu analysieren. Hier verwendete Zhao den regulären Ausdruck , um Titel, URL, Zeit, Benutzer und Inhalt abzugleichen. Dann könnte die Erstellung eines SyndicationFeed-Objekts nicht einfacher sein. Leider ist der HTML-Code verschiedener Vorlagen im Blog Park unterschiedlich, sodass dieses Beispiel von Lao Zhao nur die aktuelle Vorlage unterstützt. Sie können es selbst ändern, indem Sie beispielsweise einen neuen Parameter zu CommentRss.ashx hinzufügen, um die HTML-Analysemethode anzugeben, und es dann in mehreren Vorlagen verwenden.
Dieses Beispiel ist auch sehr einfach zu verwenden. Sie können es auf dem lokalen IIS kompilieren oder bereitstellen, die Seite Default.html öffnen und die URL des Artikels kopieren, z. B. „Old Zhao Talks about IL (2 )“ URL eines Artikels: Klicken Sie auf die Schaltfläche, um einen Link zur RSS-Seite zu erstellen. Daher wird es im IE wie folgt angezeigt:
Zu diesem Zeitpunkt müssen Sie nur die URL in den lokalen RSS-Reader eingeben. Da das Programm auf Ihrem Computer bereitgestellt wird, können Sie kein Abonnement mit Tools wie Google Reader durchführen. Wenn Sie die Voraussetzungen dafür haben, platzieren Sie sie einfach in einem virtuellen Raum oder an anderen Orten. Da Ihr Programm nur Ihnen dient, nimmt es nicht viele Ressourcen in Anspruch und die aktuelle Schreibweise ist ausreichend. Wir sind Programmierer. Machen Sie es selbst und sorgen Sie für ausreichend Essen und Kleidung. [Verwandte Empfehlungen] 1.RSS-effizientes Einführungs-Tutorial
Das obige ist der detaillierte Inhalt vonCodebeispiel zum manuellen Generieren von Kommentar-RSS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!