generate method
Implementation
String generate() {
final dateFormatter = new DateFormat('yyyy-MM-dd');
final root = new XmlElement(new XmlName('urlset'), [
new XmlAttribute(
new XmlName('xmlns'), 'http://www.sitemaps.org/schemas/sitemap/0.9'),
new XmlAttribute(
new XmlName('xmlns:xhtml'), 'http://www.w3.org/1999/xhtml')
]);
for (final entry in entries) {
final url = new XmlElement(new XmlName('url'));
final location = new XmlElement(new XmlName('loc'));
location.children.add(new XmlText(entry.location));
url.children.add(location);
url.children.addAll(entry.alternates
.map<String, XmlNode>((String language, String location) =>
new MapEntry<String, XmlNode>(
language,
new XmlElement(new XmlName('xhtml:link'), [
new XmlAttribute(new XmlName('rel'), 'alternate'),
new XmlAttribute(new XmlName('hreflang'), language),
new XmlAttribute(new XmlName('href'), location)
])))
.values);
final lastMod = new XmlElement(new XmlName('lastmod'));
lastMod.children
.add(new XmlText(dateFormatter.format(entry.lastModified)));
url.children.add(lastMod);
final changeFrequency = new XmlElement(new XmlName('changefreq'));
changeFrequency.children.add(new XmlText(entry.changeFrequency));
url.children.add(changeFrequency);
final priority = new XmlElement(new XmlName('priority'));
priority.children.add(new XmlText(entry.priority.toString()));
url.children.add(priority);
root.children.add(url);
}
String stylesheet = '';
if (stylesheetPath != null) {
stylesheet = '<?xml-stylesheet type="text/xsl" href="$stylesheetPath"?>';
}
return '<?xml version="1.0" encoding="UTF-8"?>$stylesheet$root';
}