Any custom attributes that you add to a Site Map are exposed by instances of the SiteMapNode class.
File: Web.sitemap
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode
url="Default.aspx"
title="Home"
description="The Home Page">
<siteMapNode
url="Default1.aspx"
title="Our Products"
description="Products that we offer">
<siteMapNode
url="FirstProduct.aspx"
title="First Product"
description="The description of the First Product" />
<siteMapNode
url="SecondProduct.aspx"
title="Second Product"
description="The description of the Second Product" />
</siteMapNode>
<siteMapNode
url="Default2.aspx"
title="Our Services"
description="Services that we offer">
<siteMapNode
url="FirstService.aspx"
title="First Service"
description="The description of the First Service"
metaDescription="The first service" />
<siteMapNode
url="SecondService.aspx"
title="Second Service"
description="The description of the Second Service" />
</siteMapNode>
</siteMapNode>
</siteMap>
File: FirstService.aspx
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
void Page_Load()
{
HtmlMeta meta = new HtmlMeta();
meta.Name = "Description";
meta.Content = SiteMap.CurrentNode["metaDescription"];
head1.Controls.Add(meta);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>First Service</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>The First Service</h1>
</div>
</form>
</body>
</html>