MetaData.rssFromXml constructor
MetaData.rssFromXml(
- XmlDocument xmlDoc
Creates a new MetaData object from the XmlDocument
Implementation
factory MetaData.rssFromXml(XmlDocument xmlDoc) {
final root = xmlDoc.rootElement;
var version = root.getAttribute('version') ?? '';
final encoding = root.getAttribute('encoding') ?? '';
final namespaces = Namespaces(root.attributes);
switch (root.localName) {
case 'feed':
if (version.isEmpty && namespaces.hasAtomDefault) {
version = '1.0';
}
return MetaData(FeedKind.atom, version, namespaces, encoding: encoding);
case 'rss':
if (version == '0.91') {
final docType = root.document?.doctypeElement;
if ((docType != null) && (docType.externalId?.publicId == rss91n)) {
version = '0.91n';
} else {
version = '0.91u';
}
}
return MetaData(FeedKind.rss, version, namespaces, encoding: encoding);
case 'RDF':
return MetaData(FeedKind.rss, '0.90', namespaces, encoding: encoding);
default:
throw FeedError('Unknown feed type: ${root.localName}');
}
}