Ich analysiere eine Html-Tabelle und brauche die Anzahl der Spalten und Zeilen.
Ich habe versucht mit:
ColNum = mTables(1).SelectNodes(".//th").Count
RowNum = mTables(1).SelectNodes(".//tr").Count
Aber ich bekomme falsche Ergebnisse, wenn die Tabelle eine oder mehrere Untertabellen enthält.
Hier ist ein Beispiel für eine HTML-Tabelle, die ich parsen muss:
<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>
In diesem Beispiel brauche ich folgende Ergebnisse: Spalten = 3 Zeilen = 5
Wie kann ich die Anzahl der Zeilen und Spalten (nur für die Haupttabelle) ermitteln, ohne die Zeilen und Spalten der Untertabelle zu zählen?
Ich habe es so gelöst:
Für Spalten :
ColNum = mTables(1).SelectSingleNode(".//tbody//tr[1]").SelectNodes(".//th").Count
Für Zeilen :
Zuerst : Nach Untertabellen suchen
Dim SubTbl%
Try
SubTbl% = mTables(1).SelectNodes(".//table").Count
Catch ex As Exception
SubTbl% = 0
End Try
Dann : Zeilen in Untertabellen zählen und von den Gesamtzeilen subtrahieren
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