私は、HTMLテーブルを解析していると私は、列と行数が必要です。
私は使用してtryed:
ColNum = mTables(1).SelectNodes(".//th").Count
RowNum = mTables(1).SelectNodes(".//tr").Count
しかし、テーブルにサブタブが1つ以上ある場合は、結果が正しくありません。
私が解析する必要があるhtmlテーブルのサンプルは次のとおりです。
<table border='1'>
<tbody>
<tr><th>Some Text</th><th>Some Text</th><th>Some Text</th></tr>
<tr><td>Some data</td><td>Some data</td><td>Some data</td></tr>
<tr><td>Some data</td><td>Some data
<table border='1'>
<tbody>
<tr><th>Some Text</th><th>Some Text</th></tr>
<tr><td>Some Data</td><td>Some Data</td></tr>
</tbody>
</table><td>Some data</td></tr>
<tr><td>Some data</td><td>Some data</td><td>Some data</td></tr>
<tr><td>Some data</td><td>Some data</td><td>Some data</td></tr>
</tbody>
</table>
このサンプルでは、この結果が必要です:Columns = 3 Rows = 5
サブテーブルの行と列を数えずに行と列の数(メインテーブルのみ)を取得するにはどうすればよいですか?
私はこのように解決した:
列の場合 :
ColNum = mTables(1).SelectSingleNode(".//tbody//tr[1]").SelectNodes(".//th").Count
行の場合 :
最初 :サブテーブルを確認する
Dim SubTbl%
Try
SubTbl% = mTables(1).SelectNodes(".//table").Count
Catch ex As Exception
SubTbl% = 0
End Try
次に 、サブテーブル内の行をカウントし、合計行から減算する
Dim SubTRows% = 0
If SubTables > 0 Then
For SubT As Short = 1 To SubTables
Dim STRows% = mTables(1).SelectNodes(".//table[" & SubT & "]//tr").Count
SubTRows += STRows
Next
RowsNum = mTables(1).SelectNodes(".//tr").Count - SubTRows
Else
RowsNum = mTables(1).SelectNodes(".//tr").Count
End If