2

Web サイトからいくつかのデータを解析して、テーブルから特定のアイテムを取得しようとしています。#ffffff または #f4f4ff に設定された bgcolor 属性を持つタグは、開始したい場所であり、実際のデータはその内の 2 番目にあることがわかっています。

現在私は持っています:

Private Sub runForm()


    Dim theElementCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("TR")
    For Each curElement As HtmlElement In theElementCollection
        Dim controlValue As String = curElement.GetAttribute("bgcolor").ToString
        MsgBox(controlValue)
        If controlValue.Equals("#f4f4ff") Or controlValue.Equals("#ffffff") Then

        End If
    Next
End Sub

このコードは必要な TR 要素を取得しますが、内部要素を調査する方法 (可能であれば) がわかりません。そうでない場合、どのルートを取るのが最善だと思いますか? このサイトは実際にはどのテーブルにもラベルを付けていません。探しているものは、基本的に次のようになります。

<td><b><font size="2"><a href="/movie/?id=movieTitle.htm">The Movie</a></font></b></td>

「The Movie」のテキストを抜き出してテキストファイルに追加したい。

4

1 に答える 1

0

次のように、オブジェクト ( )のInnerHtmlプロパティを使用します。HtmlElementcurElement

For Each curElement As HtmlElement In theElementCollection
    Dim controlValue As String = curElement.GetAttribute("bgcolor").ToString
    MsgBox(controlValue)
    If controlValue.Equals("#f4f4ff") Or controlValue.Equals("#ffffff") Then
        Dim elementValue As String = curElement.InnerHtml
    End If
Next

詳細については、 HtmlElement.InnerHtml プロパティのドキュメントを参照してください。

アップデート:

HTML 要素の 2 番目の子を取得するには、次のようにと then<tr>を組み合わせて使用​​します。FirstChildNextSibling

For Each curElement As HtmlElement In theElementCollection
    Dim controlValue As String = curElement.GetAttribute("bgcolor").ToString
    MsgBox(controlValue)
    If controlValue.Equals("#f4f4ff") Or controlValue.Equals("#ffffff") Then
        Dim firstChildElement = curElement.FirstChild
        Dim secondChildElement = firstChildElement.NextSibling

        ' secondChildElement should be the second <td>, now get the value of the inner HTML
        Dim elementValue As String = secondChildElement.InnerHtml
    End If
Next
于 2013-08-23T15:29:11.717 に答える