示例#1
0
 /// <summary>
 ///		Añade una colección de entradas
 /// </summary>
 internal void Add(SitemapEntriesCollection entries)
 {
     foreach (SitemapEntry entry in entries)
     {
         Add(entry);
     }
 }
        /// <summary>
        ///		Carga los archivos de un directorio
        /// </summary>
        private SitemapEntriesCollection Load(Pages.FileTargetModelCollection files)
        {
            SitemapEntriesCollection entries = new SitemapEntriesCollection();

            // Añade los archivos
            foreach (Pages.FileTargetModel file in files)
            {
                string extension = Path.GetExtension(file.FileNameTarget);

                if (extension.EqualsIgnoreCase(".htm") || extension.EqualsIgnoreCase(".html"))
                {
                    entries.Add(file.RelativeFullFileNameTarget, file.DateUpdate);
                }
            }
            // Devuelve la colección de entradas
            return(entries);
        }
        /// <summary>
        ///		Obtiene el XML de una colección de entradas
        /// </summary>
        private void Save(string urlBase, string fileName, SitemapEntriesCollection entries)
        {
            MLFile fileML = new MLFile();
            MLNode nodeML = fileML.Nodes.Add("urlset");

            // Añade el espacio de nombres
            nodeML.Attributes.Add("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
            // Añade las entradas
            foreach (SitemapEntry entry in entries)
            {
                MLNode entryML = nodeML.Nodes.Add("url");

                // Añade los datos del nodo
                entryML.Nodes.Add("loc", GetURL(entry.FileName, urlBase));
                entryML.Nodes.Add("lastmod", string.Format("{0:yyyy-MM-dd}", entry.DateLastUpdate));
                entryML.Nodes.Add("changefreq", entry.ChangeFrequence.ToString().ToLower());
                entryML.Nodes.Add("priority", entry.Priority.ToString().Replace(',', '.'));
            }
            // Graba el archivo
            new XMLWriter().Save(fileName, fileML);
        }