parseHtmlTable method

List<Map<String, String>> parseHtmlTable(
  1. String htmlString
)

Implementation

List<Map<String, String>> parseHtmlTable(String htmlString) {
  final document = html_parser.parse(htmlString);
  final table = document.querySelector('table');
  if (table == null) return [];

  final rows = table.querySelectorAll('tr');
  if (rows.isEmpty) return [];

  final headers = rows.first.querySelectorAll('th,td').map((e) => e.text.trim()).toList();
  final data = <Map<String, String>>[];

  for (var i = 1; i < rows.length; i++) {
    final rowCells = rows[i].querySelectorAll('td');
    if (rowCells.isEmpty) continue;

    final rowMap = <String, String>{};
    for (var j = 0; j < headers.length; j++) {
      rowMap[headers[j]] = j < rowCells.length ? rowCells[j].text.trim() : '';
    }
    data.add(rowMap);
  }
  return data;
}