generate method
Generate the complete sitemap XML string
Implementation
String generate() {
final buffer = StringBuffer();
buffer.writeln('<?xml version="1.0" encoding="UTF-8"?>');
if (xslStylesheet != null) {
buffer.writeln(
'<?xml-stylesheet type="text/xsl" href="$xslStylesheet"?>',
);
}
buffer.writeln(
'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',
);
final cleanBase = baseUrl.endsWith('/')
? baseUrl.substring(0, baseUrl.length - 1)
: baseUrl;
for (final entry in entries) {
final cleanPath = entry.path.startsWith('/')
? entry.path
: '/${entry.path}';
final fullUrl = '$cleanBase$cleanPath';
buffer.writeln(' <url>');
buffer.writeln(' <loc>${_escapeXml(fullUrl)}</loc>');
if (entry.lastModified != null) {
buffer.writeln(
' <lastmod>${_formatDate(entry.lastModified!)}</lastmod>',
);
}
buffer.writeln(
' <changefreq>${entry.changeFrequency.value}</changefreq>',
);
buffer.writeln(
' <priority>${entry.priority.toStringAsFixed(1)}</priority>',
);
buffer.writeln(' </url>');
}
buffer.writeln('</urlset>');
return buffer.toString();
}