In this example I will generate a XML site-map that complies with the sitemap-protocol XML schema.
[code language=’c#’]
//create datasource
List blogPosts = new List{
“http://blog.newguid.net/mypost1.aspx”,
“http://blog.newguid.net/mypost_about_Net.aspx”,
“http://blog.newguid.net/morePosts.aspx”,
“http://blog.newguid.net/andEvenMorePosts.aspx”
};
//Create namespace for sitemap-protocol
XNamespace xmlNS = “http://www.sitemaps.org/schemas/sitemap/0.9”;
XDocument xmlDoc =
new XDocument(
new XDeclaration(“1.0”, “UTF-8”, null),
new XElement(xmlNS + “urlset”,
from blogPostUrl in blogPosts
select
new XElement(xmlNS + “url”,
new XElement(xmlNS + “loc”, blogPostUrl))
));
//Show output
Response.Write(xmlDoc);
[/code]
This example will give the following output:
[code language=’xml’]
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9“>
http://blog.newguid.net/mypost1.aspx
http://blog.newguid.net/mypost_about_Net.aspx
http://blog.newguid.net/morePosts.aspx
http://blog.newguid.net/andEvenMorePosts.aspx
[/code]
To keep the example as simple as possible I only use the LOC element of the URL node. In the real world you can implement the lastmod, changefreq and priority node.
More information about the sitemap-protocol.