1

インターネット上の既存の 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
4

1 に答える 1