parseBookFromHtml static method

Book? parseBookFromHtml(
  1. String htmlContent
)

Parses book data from HTML content containing JSON-LD script tags

Implementation

static Book? parseBookFromHtml(String htmlContent) {
  try {
    final document = html_parser.parse(htmlContent);
    final scriptTags = document.querySelectorAll('script[type="application/ld+json"]');

    for (var script in scriptTags) {
      final jsonContent = script.innerHtml.trim();
      if (jsonContent.isNotEmpty) {
        try {
          final jsonData = json.decode(jsonContent);

          // Check if this JSON-LD is for a Book/Product
          if (_isBookData(jsonData)) {
            return Book.fromJson(jsonData);
          }
        } catch (e) {
          // Skip invalid JSON
          continue;
        }
      }
    }
    return null;
  } catch (e) {
    // Handle parsing error
    print('Error parsing HTML: $e');
    return null;
  }
}