extractRdfa method

Extracts RDFa data from HTML

Implementation

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

  try {
    // Find all elements with typeof attribute (RDFa 1.1)
    final typeofElements = document.querySelectorAll('[typeof]');

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

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

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

  return results;
}