class Program { private static HTMLDocument _document; private static string Tabs(int n) { return new string('\t', n); } private static void Main() { // read page with jobposting data try { _document = new HTMLDocument(@"http://asposedemo20170904120448.azurewebsites.net/home/elementtraversal"); } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); return; } PrintOutlineDemo01(_document.GetElementById("demo01")); Console.WriteLine("------------------------------"); PrintOutlineDemo02(_document.GetElementById("demo01")); var demoElement2 = _document.GetElementById("demo01"); Console.WriteLine($"Element with id={demoElement2.Id} contains {demoElement2.ChildElementCount} children."); Console.WriteLine($"First child is {demoElement2.FirstElementChild.TagName} with content {demoElement2.FirstElementChild.TextContent}"); Console.WriteLine($"Last child is {demoElement2.LastElementChild.TagName} with content {demoElement2.LastElementChild.TextContent}"); } private static void PrintOutlineDemo01(Element element,int level=0) { Console.WriteLine("{0}{1}", Tabs(level) ,element.TagName); for (var elem = element.FirstElementChild; elem != null; elem = elem.NextElementSibling) { PrintOutlineDemo01(elem, level + 1); } } private static void PrintOutlineDemo02(Element element, int level=0) { if (element.FirstElementChild == null) return; for (var elem = element.FirstElementChild; elem != null; elem = elem.NextElementSibling) { Console.WriteLine("{0}{1}", Tabs(level), elem.TagName); PrintOutlineDemo02(elem, level + 1); } }