public static void Main()
XmlDocument doc = new XmlDocument();
XmlNodeList nodes = doc.SelectNodes("//*[self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6]");
var countHNodes = nodes.Count;
Console.WriteLine("Node not found!");
var tocItems = string.Empty;
foreach (XmlNode node in nodes)
var hLevel=int.Parse(nodeName.Replace("h",string.Empty));
var nodeText=node.InnerText;
var nodeUrl=(node.Attributes !=null && node.Attributes["id"] !=null)?node.Attributes["id"].Value.Replace(" ","-"):nodeText.Replace(" ","-");
((XmlElement)node).SetAttribute("id", nodeUrl);
tocItems+="<div style='margin-left:"+(hLevel*40)+"px' id='"+nodeUrl+"-toc' name='tableOfContents'><a href='#"+nodeUrl+"'>"+nodeText+"</a></div>";
var tocNode="<p name='tableOfContents' id='main-toc'><strong>İçindekiler</strong></p>"+tocItems+"<hr id='hr-toc' name='tableOfContents'/>";
var result=doc.OuterXml.Replace("<body>","<body>"+tocNode);
Console.WriteLine(result);