2010-01-31 5 views
1

Existe-t-il une bibliothèque que je peux utiliser en C# pour générer un sitemap pour mon site Web asp.net?Lib pour générer SiteMap en C#

Je cherche quelque chose que je peux insérer des données dans et il me dira si le sitemap généré a atteint sa limite ou si la taille du fichier a atteint sa limite. Puis me permet de l'enregistrer en tant que fichier

+0

Merci d'avoir choisi ma réponse! – user257257

Répondre

1

AFAIK Theres aucun libs pour ce que vous voulez faire (à en juger par vos commentaires). Vous pouvez cependant utiliser .net xml enveloppé dans votre propre classe pour le générer. Ce ne devrait pas être difficile. Vous devez également prendre en compte les caractères ascii et les ruptures de 4 octets (2 pour \ r et 2 pour \ n).

2

Voulez-vous dire la classe SiteMap?

SiteMap Class

+0

+1. J'ai regardé l'exemple et ça a l'air bizarre. Il semble que j'ai besoin d'écrire une version XML à la main? et j'utilise sitemap pour en lire? Est-ce ce que ça fait? Je cherche quelque chose que je peux insérer des données dedans et il me dira si le sitemap généré a atteint sa limite (je pense qu'il était 5k) ou si la taille l'atteint limite. Puis me permet de l'enregistrer en tant que sitemap XML. –

2

Maybe mine? :)

Un exemple d'utilisation et de téléchargement vous pouvez find here. Recherchez la section SiteMap Generator.

+0

Excellent. Je ne vois pas de déclarations if et je vérifie wikipedia rapidement. Est-ce que cela me dira que j'ai atteint la limite de 50k? Ou si le fichier a généré la taille (après avoir échappé des caractères et tout ça) a atteint la limite (en ignorant la dernière entrée je suppose)? –

+0

ahh, pas de source, c'est un dll. donc je peux réparer n'importe quoi si je dois;). Il ne ressemble pas à ce qu'il me dit quand je frappe la limite (50k entrées/10mb). –

+0

Non, il n'a pas de limite mais 10Mb suffit pour les sites communs. – dariol

5

Ici vous pouvez vérifier mon code pour générer Sitemap.xml basée sur la collecte d'objets déjà préparé SiteMapUrl:

  XNamespace ns = XNamespace.Get("http://www.sitemaps.org/schemas/sitemap/0.9"); 
     XElement urlset = null; 
     XDocument siteMapDocument = new XDocument(urlset = new XElement(ns + "urlset")); 
     foreach (var links in siteMap.SiteMapUrls) 
     { 
      urlset.Add(new XElement 
      (ns + "url", 
      new XElement(ns + "loc",links.Location), 
      new XElement(ns + "lastmod", DateTime.Now), 
      new XElement(ns + "changefreq", Enum.GetName(typeof(SiteMapUrlChangeFreqs), links.ChangeFreq)), 
      new XElement(ns + "priority", "0.2") 
      )); 
     } 

     siteMapDocument.Save(String.Format("{0}\\{1}",AppDomain.CurrentDomain.BaseDirectory,"SiteMap.xml")); 
0

Lorsque vous travaillez avec ASP.NET, il est nécessaire de préciser si vous parlez d'un ASP. Sitemap NET (utilisé pour la navigation sur le site) et un sitemap pour moteur de recherche.

Si vous faites référence à un plan du site de moteur de recherche, consultez l'article au http://www.blackbeltcoder.com/Articles/asp/dynamic-sitemaps-in-asp-net. Il présente du code pour faire ce que vous voulez.