extractMicrodata method

List<StructuredDataExtractionResult> extractMicrodata(
  1. String html
)

Extracts Microdata from HTML

Implementation

List<StructuredDataExtractionResult> extractMicrodata(String html) {
  final results = <StructuredDataExtractionResult>[];
  final document = html_parser.parse(html);

  try {
    // Find all elements with itemscope attribute
    final itemscopeElements = document.querySelectorAll('[itemscope]');

    for (final element in itemscopeElements) {
      // Skip nested itemscope elements (they will be processed as part of their parent)
      if (element.parent != null &&
          element.parent!.attributes.containsKey('itemscope')) {
        continue;
      }

      final data = _extractItemscope(element);
      if (data.isNotEmpty) {
        results.add(
          StructuredDataExtractionResult(
            type: StructuredDataType.microdata,
            data: data,
            rawData: element.outerHtml,
          ),
        );
      }
    }

    logger?.info('Extracted ${results.length} Microdata items');
  } catch (e) {
    logger?.error('Error extracting Microdata: $e');
  }

  return results;
}