MediaContent.fromXml constructor
MediaContent.fromXml(
- UniversalFeed uf,
- XmlElement node
Creates a new MediaContent object from an XmlElement
Implementation
factory MediaContent.fromXml(UniversalFeed uf, XmlElement node) {
final nsUrl = uf.meta.extensions.nsUrl(nsMediaNs);
final mc = MediaContent(node.getAttribute('url') ?? '')
..fileSize = node.getAttribute('fileSize')
..type = node.getAttribute('type')
..medium = node.getAttribute('medium')
..isDefault = node.getAttribute('isDefault')
..expression = node.getAttribute('expression')
..bitrate = node.getAttribute('bitrate')
..framerate = node.getAttribute('framerate')
..samplingrate = node.getAttribute('samplingrate')
..channels = node.getAttribute('channels')
..duration = node.getAttribute('duration')
..height = node.getAttribute('height')
..width = node.getAttribute('width')
..lang = node.getAttribute('lang');
getElements<XmlElement>(
node,
'rating',
ns: nsUrl,
cb: (xml) => mc.rating.add(Rating.fromXml(xml)),
);
getElement<XmlElement>(node, 'title', ns: nsUrl, cb: (value) => mc.title = textDecoder('plain', value));
getElement<XmlElement>(node, 'description', ns: nsUrl, cb: (value) => mc.description = textDecoder('plain', value));
getElements<XmlElement>(
node,
'keywords',
ns: nsUrl,
cb: (xml) {
final categories = Category.loadTags(xml, defaultScheme: 'keyword');
if (categories != null) mc.categories.addAll(categories);
},
);
getElements<XmlElement>(
node,
'category',
ns: nsUrl,
cb: (xml) {
final category = Category.fromXml(xml);
if (category != null) mc.categories.add(category);
},
);
getElements<XmlElement>(
node,
'thumbnail',
ns: nsUrl,
cb: (xml) => mc.thumbnails.add(Image.fromXmlAttributes(xml)),
);
getElement<XmlElement>(node, 'player', ns: nsUrl, cb: (value) => mc.player = Player.fromXml(value));
getElement<XmlElement>(
node,
'credit',
ns: nsUrl,
cb: (xml) => mc.credits.add(Credit.fromXml(xml)),
);
return mc;
}