インターネット上の既存の Web ページから情報を読み取る必要がある VB Web アプリケーションがあります。したがって、mshtml ライブラリを使用します。html を ihtmldocument3 インターフェイスに読み込みます。その後、ihtmlelementcollection を反復処理すると、Visual Studio 2010 Debugger ですべてが正常に機能しました。少なくとも、初めて。コードを 2 回目にデバッグすると、いくつかの要素を反復した後、次の要素は何も返さず、例外が発生します。(コードに割り込むと、ihtmlelementcollection に 0 項目が表示されます。) すべての変数の名前を変更すると、正常に実行されますが、これも最初の 1 回だけです。
デバッグに使用するコードは次のとおりです。例外 (null 参照) に応答するため、実際のコードの概要を説明しました。コレクションなどを手動でリリースする必要がありますか、それともばかげたことをしていますか?
'global variable
Private tables as IHTMLElementCollection
...........................................
Dim tableChildren As IHTMLElementCollection = tables(3).children
Dim trElements As IHTMLElementCollection = tableChildren.item(0).getElementsByTagName("tr")
Dim intCount As Integer 'just for debugging purposes
For Each element As IHTMLElement In trElements
intCount += 1 'for debugging purposes
Debug.Print(intCount.ToString & vbNewLine & element.innerHTML)
'strLine1 = element.children(0).innerText
'strLine2 = element.children(1).innerText
'and so on...
Next