某页面有多个表格,每格式大致如下(行列数同,其它格式不一定相同):
<table border="1" width="100%" id="table1">
<tr>
<td rowspan="3">A01</td>
<td rowspan="2">A01A<p>A01B</td>
<td align="right">0.5 1.150</td>
<td align="right">2.5 1.030</td>
<td align="right">AAA</td>
</tr>
<tr>
<td align="right">0.750</td>
<td align="right">2.5 0.830</td>
<td align="right">BBB</td>
</tr>
<tr>
<td colspan="4">0123456789</td>
</tr>
</table>
现需要将每个表格里的相关内容读取出来并保存相应关系。
如:A01A 对 0.5 1.150 及 2.5 1.030 及 AAA
    A01B 对 0.750 及2.5 0.830 及 BBB
即:如果指定读取A01A的数据,则应该将0.5 1.150 及 2.5 1.030 及 AAA读取出来并放入相应变量。
应该怎么才能办到?
    用IHTMLTxtRange对象可以搜索到A01A,但不知怎么取得后面的数据。请各位指点指点。不胜感谢。

解决方案 »

  1.   

    你可以先获得INNERTEXT的内容,里面全是页面的文本信息(不含TAG),然后你就找你说的A01A,再找后面的,分隔符号是TAB。
      

  2.   

    使用 MSHTML.HTMLDocument对象,大致思路如下:先使用ID获取Table,然后获取逐行Table下的TR对象,然后在逐列获取TR下的TD对象。具体使用方法可以查看MSDN
      

  3.   

    别人的网页。
    不知Table的ID及个数。或者根本就没有ID。
      

  4.   

    听说可以用正则表达式来匹配,有哪位熟悉的写一个例子出来学习一下,
    如果匹配表格,如何匹配<TR><TD>等。以及嵌套表格的处理等。
      

  5.   

    http://www.microsoft.com/china/msdn/Archives/workshop/scrape.asp
      

  6.   

    如果是A01A<p>A01B分到两个td的话就很好搞了,我这里简单了做了一下分析:
    Private Type tdType
        text As String
        len As Integer
    End Type
    Private Sub Command1_Click()
        Dim table As Object
        Dim row As Object
        Dim a(100) As tdType
        Dim count As Integer
        
        count = 0
        
        Set table = WebBrowser1.Document.All("table1")
        'Debug.Print table.rows.length
        
        For Each row In table.rows
            Dim cell As Object
            For i = 0 To count - 1
                If (a(i).len > 1) Then
                    Debug.Print a(i).text,
                    a(i).len = a(i).len - 1
                End If
            Next i
            For Each cell In row.cells
                If (cell.rowspan > 1) Then
                    a(count).text = cell.innertext
                    a(count).len = cell.rowspan
                    count = count + 1
                End If
                Debug.Print cell.innerhtml,
            Next
            Debug.Print
            Debug.Print "********************************"
        Next
    End SubPrivate Sub Form_Load()
        WebBrowser1.Navigate "c:\rrr.html"
    End Sub看看这个对你有没有帮助