andruhovski icon

Task 980: Element Traversal Demo

andruhovski | PRO | 09/28/17 10:52:33 AM UTC | 0 ⭐ | 799 👁️ | Never ⏰ | []
C# |

2.07 KB

|

None

|

0 👍

/

0 👎

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);
            }
        }

Comments