extractMicrodata method
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;
}