Задача
Сгенерировать файл sitemap.xml на C# для ASP.NET проектаФайлов в проекте нет - контент генерируется динамически
Решение
помог проект https://github.com/aseemgautam/google-sitemap
нашел его в ветке https://stackoverflow.com/questions/13449103/how-to-create-xml-sitemap-programmatically-in-c-sharp
Проект достаточно простой. Я просто интегрировал 3 файла в свой проект (немного переписав неймспейсы)
Идея: создать список объектов SitemapLocation и заслать их в объект SiteMap.
Ниже - 2 примера использования
public static string GetSitemap(
List<SitemapLocation> locations
)
{
Sitemap sitemap = new Sitemap();
sitemap.AddRange(locations);
return sitemap.WriteSitemapToString();
}
public static void WriteSitemapToFile(
List<SitemapLocation> locations,
string fileName
)
{
Sitemap sitemap = new Sitemap();
sitemap.AddRange(locations);
sitemap.WriteSitemapToFile(fileName);
}
Сам список локейшенов создается примерно так
var res = new List<SitemapLocation>();
res.Add(new SitemapLocation
{
ChangeFrequency = SitemapLocation.eChangeFrequency.weekly,
Priority = 0.5,
Url = UrlPrefix + "/news",
});
Для понимания формата файла хорошо помогла статья
XML-формат файла Sitemap
см. также
XML-формат файла Sitemap
Что такое Sitemaps?
https://stackoverflow.com/questions/13449103/how-to-create-xml-sitemap-programmatically-in-c-sharp
Как создать карту сайта? Создаем sitemap для Google и Яндекс
https://seoprofy.ua/blog/optimizaciya-sajtov/kak-sozdat-kartu-sajta
Карта сайта (файл Sitemap) от А до Я
http://pr-cy.ru/news/p/5433
Правильный файл sitemap.xml или как создать карту сайта своими руками | Карта сайта для Joomla + VirtueMart с помощью компонента Xmap
Комментариев нет:
Отправить комментарий