- PR -

VB2005によるRSS Auto Discoveryの実装について

1
投稿者投稿内容
おおぎ
会議室デビュー日: 2006/08/08
投稿数: 1
投稿日時: 2006-09-01 17:33
お世話になります。

現在、VB2005を用いてRSS解析機能を実装したDLLを作成しています。

その機能の中で、『RSS Auto Discovery』の機能を実装する方法について
アドバイスを頂けると幸いです。

〜RSS Auto Discovery実装用関数 要件〜
※処理概要:URLを入力するとそのサイトのコードに含まれるlinkタグを
      全て走査し、RSSの指定がある物の一覧を出力する。
 引数:検索対象URL
 戻値:検索対象URLに含まれるRSSのURL一覧
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜


上記の内容を実装方法を調査する中で、HTMLのコードをString型の文字列に
展開してゴリゴリと判別用の関数をコーディングする事も考えたのですが、
HTMLのコードをHTMLDocumentオブジェクトで取得をし、GetElementsByTagName関数を
用いれば思った通りのデータが取得できるのではないかと考え、以下のサイトの
ソースサンプルを用いてテストプログラムを実装してみました。

http://www.microsoft.com/japan/msdn/thisweek/300x10/Phase3/WebBrowser/vb.aspx


サンプルソースにボタンを1つ加え、ボタンのクリックイベントに

**********************************
Private Sub btnDoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDoc.Click

Dim myHtmlElementCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("link")
Dim intCnt As Integer

For intCnt = 0 To myHtmlElementCollection.Count - 1
《データ取得処理》
Next
**********************************

この様な処理を加えた所、自分の思った様なデータが取得出来ました。
なので、以下の様な関数をDLLに作成した所、【 wb.Navigate(pstrURL) 】の
実行で、出来ると思われたDocumentオブジェクトがnothingになってしまい、
思う様にデータが取得出来ませんでした。

**********************************
' linkタグの一覧取得関数
Public Function Get_Link_Rel_Data_List(ByVal pstrURL As String) As HtmlElementCollection

' HTMLDocumentで取得をしてlinkタグのデータ一覧が取得したい
Dim wb As WebBrowser = New WebBrowser
Dim myHTMLDocument As HtmlDocument
Dim myHTMLElementCollection As HtmlElementCollection

wb.Navigate(pstrURL)

myHTMLDocument = wb.Document

myHTMLElementCollection = myHTMLDocument.GetElementsByTagName("link")

Return myHTMLElementCollection

End Function
**********************************


この様な方法ではDocumentのオブジェクトは正しく生成されないのでしょうか?

また、もしこれ以外の方法でもっと良い方法がありましたらご教授頂けると幸いです。

宜しくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)