parseTable static method
Implementation
static List<List<String>> parseTable(String html) {
final tableRegExp = HtmlParserRegex.table;
final rowRegExp = HtmlParserRegex.row;
final headerCellRegExp = HtmlParserRegex.headerCell;
final dataCellRegExp = HtmlParserRegex.dataCell;
final tableMatch = tableRegExp.firstMatch(html);
if (tableMatch == null) return [];
final tableContent = tableMatch.group(0)!;
final rows = <List<String>>[];
for (final rowMatch in rowRegExp.allMatches(tableContent)) {
final row = rowMatch.group(0)!;
final headers = headerCellRegExp
.allMatches(row)
.map((cellMatch) =>
HtmlParserRegex.thContent
.firstMatch(cellMatch.group(0)!)
?.group(1)
?.trim() ??
'')
.toList();
final data = dataCellRegExp
.allMatches(row)
.map((cellMatch) =>
HtmlParserRegex.tdContent
.firstMatch(cellMatch.group(0)!)
?.group(1)
?.trim() ??
'')
.toList();
rows.add(headers.isNotEmpty ? headers : data);
}
return rows;
}