Con questo esempio vedremo come realizzare una funzione che genererà una sitemap ad-hoc per i contenuti del nostro sito web. La funzione prende come parametri un HttpContext ed una collezione di oggetti che ciclerà per creare i nodi dell'xml. Sarebbe anche utile passare come parametro il path dove salvare l'xml ma nel mio caso non serviva.
public static void GenerateSitemap(HttpContext context, NewsCollection newsColl)
{
// PRDISPONGO L'XML E DICHIARO DOVE VERRA' SALVATO
using (XmlTextWriter writer = new XmlTextWriter(context.Server.MapPath("/public/sitemap_dynamic.xml"), Encoding.UTF8))
{
// CREO GLI ATTRIBUTI PER SPECIFICARE CHE SI TRATTA DI UNA SITEMAP
writer.WriteStartDocument();
writer.WriteStartElement("urlset");
writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
// CICLO LA COLLEZIONE DEI MIEI OGGETTI E AGGIUNGO I NODI
for (int i = 0; i < newsColl.Count; i++)
{
writer.WriteStartElement("url");
writer.WriteElementString("loc", string.Concat("http://www.miosito.it/", newsColl[i].url));
writer.WriteElementString("lastmod", String.Format("{0:yyyy-MM-dd}", newsColl[i].Pubdate));
writer.WriteElementString("changefreq", "daily");
writer.WriteElementString("priority", "0.8");
writer.WriteEndElement();
}
// CHIUDO L'XML
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
}
}
Per le specifiche del formato xml sitemap vi mando alla documentazione italiana originale, Google aderisce al Protocollo Sitemap 0.9 definito all'indirizzo sitemaps.org/it/. Le Sitemap create per Google che utilizzano il Protocollo Sitemap 0.9 sono quindi compatibili con altri motori di ricerca che utilizzano gli standard di sitemaps.org/it/.
Vi rimando anche a questa pagina per controllare la validità della sitemap da voi generata http://www.validome.org/google/