Maison >développement back-end >Tutoriel XML/RSS >Exemple de code pour générer manuellement des commentaires RSS

Exemple de code pour générer manuellement des commentaires RSS

Y2J
Y2Joriginal
2017-05-05 09:21:521923parcourir

La discussion sur le blog a été animée ces derniers temps, et des commentaires précieux ont émergé les uns après les autres. Parfois, nous aimerions nous abonner aux commentaires RSS d'un certain article, mais malheureusement le parc de blogs ne dispose pas actuellement de cette fonction. Pour les utilisateurs enregistrés, nous pouvons cliquer sur le lien « S'abonner pour répondre » sous la zone de commentaire pour recevoir des e-mails lorsque de nouveaux commentaires apparaissent. Il est dommage que les utilisateurs anonymes doivent constamment se rafraîchir pour prêter attention à ce qui a été discuté récemment. Mais qui sommes-nous ? Nous sommes des programmeurs et cet obstacle ne devrait être pour nous qu’une affaire insignifiante. Créez votre propre site, obtenez des données de page, analysez le HTML et affichez-le au format RSS, c'est aussi simple que cela.

Lao Zhao a donné l'exemple le plus simple pour cela. Vous pouvez vous abonner aux commentaires de n'importe quel article sur http://jeffreyzhao.cnblogs.com. Puisqu'il ne s'agit que d'un simple programme d'outils personnels, il ne prend pas en compte les performances, l'évolutivité, l'évolutivité, la tolérance aux pannes et rejette toutes les "meilleures pratiques" telles que les tests unitaires, injection de dépendances etc. . En un mot, c’est aussi simple que cela vient.

Cet exemple est composé de deux groupes La première partie est une page statiqueHTML qui génère en fonction de l'URL de l'article et la transmet à. son lien RSS. Juste quelques lignes de HTML et de 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(&#39;url&#39;).value)" />
</body>
</html>

CommentRss.ashx affichera pour nous le RSS du commentaire. Son code est le suivant :

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; } }
}

En fait, le framework .NET nous a préparé trop d'outils utiles, il nous suffit de les assembler. Par exemple, avec la classe WebClient, trois lignes de code permettent de télécharger le HTML de la page. Ensuite, nous obtenons un objet SyndicationFeed via la méthode GetRssFeed, puis le sortons via Rss20FeedFormatter. SyndicationFeed et Rss20FeedFormatter sont tous deux la bibliothèque de classes fournie avec .NET 3.5 et sont placées dans l'assembly System.ServiceModel.SyndicationnamespaceModel.dll 🎜>, vous pouvez facilement lire ou générer du XML au format Atom 1.0 ou RSS 2.0 pour notre usage. Pour plus d'informations, veuillez vous référer à ce rapport sur le site chinois InfoQ : WCF's WebProgrammingModelRessources.

La clé de GetRssReed est d'analyser la

chaîne HTML Ici, Zhao a utilisé l'expression régulière pour faire correspondre le titre, l'URL, l'heure, l'utilisateur et le contenu. Ensuite, construire un objet SyndicationFeed ne pourrait pas être plus simple. Malheureusement, le HTML des différents modèles du Blog Park est différent, donc cet exemple de Lao Zhao ne prend en charge que le modèle actuel. Vous pouvez le modifier vous-même, par exemple, ajouter un nouveau paramètre à CommentRss.ashx pour spécifier la méthode d'analyse HTML, puis il peut être utilisé dans plusieurs modèles.

Cet exemple est également très simple à utiliser. Vous pouvez le compiler ou le déployer sur IIS local, ouvrir la page Default.html et copier l'URL de l'article, par exemple « Old Zhao Talks about IL (2). )" URL d'un article :

Exemple de code pour générer manuellement des commentaires RSS

Cliquez sur le bouton

pour créer un lien vers la page RSS. Il sera donc affiché dans IE comme :

Exemple de code pour générer manuellement des commentaires RSS

À ce stade, il vous suffit de mettre l'URL dans le lecteur RSS local. Le programme étant déployé sur votre ordinateur, vous ne pouvez pas vous abonner à l'aide d'outils tels que Google Reader. Si vous avez les conditions, placez-les simplement dans un espace virtuel ou ailleurs. Puisque votre programme ne sert que vous, il ne nécessitera pas beaucoup de ressources, et la manière d'écrire actuelle est suffisante.

Nous sommes des programmeurs. Faites-le vous-même et ayez suffisamment de nourriture et de vêtements.

[Recommandations associées]

1

Tutoriel d'introduction efficace RSS

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn