ASP RSSパーサー、フィードリーダー

4651719秒

今週末、私はラップトップに夢中になり、ネットでWebベースのRSSフィードリーダーを検索しました。 その理由は、コンテンツを自動的にHTMLメールにスクレイプできるようにフィードを表示するaspRSSフィードリーダーを作成したかったためです。 したがって、ブログや出版物の記事のためにメールマガジンの一部を予約したい人にとっては、簡単に組み込むことができます。 JavaScriptは、クライアントがスクリプトをロードして実行するまで実際にはコンテンツを表示しないため、多数のJavaScriptRSSブラウザーは役に立ちませんでした。 サーバーサイドのRSSフィードリーダーが必要でした。

まず、MSXMLオブジェクトを使用してASPで独自のパーサーを作成しました。 これを行うことでRSSフィードの約75%を解析できましたが、RSSフィードの緩いXML仕様のいくつかはプログラミングが非常に難しいことがわかりました。 あなたはそれが実際に動いているのを見ることができます こちら。 アイテムの最大数(ni)、単語で切り取られた文字数(nc)、およびURLを渡すことができます。 デバッグ変数を使用して実際のフィードを確認することもできます こちら.

多くのRSSフィードは実際にはかなり「ダーティ」であり、XMLファイル内のテキストを文字列操作コードで解析する必要があります(うーん!)。 もちろん、私たちはまだネット上のRSSの「若者」にいるので、私は驚かない。 RSS仕様についてもっと読む こちら.

最後に、私は小さな宝石に出くわしました。 ダウンロードできる無料のASPクラスを見つけました。 少し遅いですが、読めないフィードは見つかりませんでした。 ここに静的バージョンとここに動的バージョンがあります。

スクリプトに関するいくつかのメモ。 返された説明のいくつかのHTMLタグをクリアする必要がありました。 私が見つけた小さなクリーンアップ関数でそれを行いました:

関数RemoveHTML(strText)Dim nPos1 Dim nPos2 nPos1 = InStr(strText、 ">")Do While nPos1> 0 nPos2 = InStr(nPos1 + 1、strText、 ">")If nPos2> 0 Then strText = Left(strText、nPos1 --1)&Mid(strText、nPos2 + 1)Else Exit Do End If nPos1 = InStr(strText、 ">")Loop RemoveHTML = strText End Function

また、もうXNUMXつきちんとしたコードを追加しました。場合によっては、説明を多かれ少なかれ表示したいことがあります。 ただし、単に文字数を制限すると、単語の途中で説明が途切れる可能性があります。 やりたくない!

関数Cutoff(strText、intChars)dim intLength dim j intLength = len(strText)if intChars> intLength then for j = intChars to 0 step -1 if mid(strText、j、1)= "" then exit for next if j> 0 then strText = left(strText、j-1)& "..." else strText = strText end if end if Cutoff = strText End Function

(このエントリでコードを正しく表示するのに問題がありました…これらの関数のいずれかに問題がある場合はお知らせください!)

ネット上にもかなりの数のツールがあることに気づきました。 あります
。NET バージョン、多くのPHPバージョン、大量のJavaScriptバージョン。

結論として、RSS仕様が引き続き改良され、実際のフィードがすべての場合にXML標準に準拠することを願っています。 TypePad、WordPressなどの無料のアプリケーションは、RSS機能を改良する必要があります。 MySpace、Xanga、LiveJournalなどの追加のブログでは、RSS機能を改善する必要があります。 RSSは強力です…クリス・バゴット 電子メール対RSSに素晴らしい記事を書きました。 それらの機能を組み合わせると、両方の影響が大きくなる可能性があると思います。

どう思いますか?

このサイトはAkismetを使用して迷惑メールを減らします。 コメントの処理方法を学ぶ.