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