суббота, 12 мая 2018 г.

Генерация файла sitemap.xml на C# для ASP.NET проекта

Задача

Сгенерировать файл 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?

How to create XML sitemap programmatically in c#
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




Комментариев нет:

Отправить комментарий