FT.Scraper.Law2009.CheckforList C# (CSharp) Method

CheckforList() private static method

private static CheckforList ( HtmlNode p, Section s ) : void
p HtmlAgilityPack.HtmlNode
s FT.DB.Section
return void
        private static void CheckforList(HtmlNode p, Section s)
        {
            // check if two elements over, we have a div
            if (p.NextSibling != null &&
                p.NextSibling.NextSibling != null &&
                p.NextSibling.NextSibling.HasChildNodes &&
                p.NextSibling.NextSibling.ChildNodes.Count > 1 &&
                (p.NextSibling.NextSibling.ChildNodes[1].Name == "div" ||
                p.NextSibling.NextSibling.ChildNodes[1].Name == "p")
                //&&
                //p.NextSibling.NextSibling.ChildNodes[1].
                //    SelectNodes("./p[@class=\"Liste1\"]") != null
                //&&
                //p.NextSibling.NextSibling.NextSibling != null &&
                //p.NextSibling.NextSibling.NextSibling.NextSibling != null &&
                //p.NextSibling.NextSibling.NextSibling.NextSibling.Name == "div"
            )
            {
                StringBuilder res = new StringBuilder("<ol>");
                if (p.NextSibling.NextSibling.ChildNodes[1].
                    SelectNodes("./p[@class=\"Liste1\"]") == null)
                {
                    // this is one that pretends to be a list but isn't
                    // http://ft.dk/Samling/20072/lovforslag/L178/som_fremsat.htm

                    s.Text += " " + p.NextSibling.NextSibling.InnerText.Kapow();
                }
                else
                {
                    foreach (var thep in
                        p.NextSibling.NextSibling.ChildNodes[1].
                        SelectNodes("./p[@class=\"Liste1\"]").OfType<HtmlNode>())
                    {
                        res.Append("<li>" + thep.InnerText.Trim() + "</li>");
                        if (
                            thep.NextSibling != null &&
                            thep.NextSibling.NextSibling != null &&
                            thep.NextSibling.NextSibling.HasChildNodes &&
                            thep.NextSibling.NextSibling.ChildNodes.Count > 1 &&
                            thep.NextSibling.NextSibling.ChildNodes[1].Name == "div"
                            //thep.NextSibling != null &&
                            //thep.NextSibling.NextSibling != null &&
                            //thep.NextSibling.NextSibling.NextSibling != null &&
                            //thep.NextSibling.NextSibling.NextSibling.NextSibling != null &&
                            //thep.NextSibling.NextSibling.NextSibling.NextSibling.Name == "div"
                            )
                        {
                            if (thep.NextSibling.NextSibling.ChildNodes[1].
                                SelectNodes("./p[@class=\"Liste2\"]") != null)
                            {
                                res.Append("<ol>");
                                foreach (var thethep in
                                    thep.NextSibling.NextSibling.ChildNodes[1].
                                    SelectNodes("./p[@class=\"Liste2\"]").OfType<HtmlNode>())
                                {
                                    res.Append("<li>" + thethep.InnerText.Trim().Kapow() + "</li>");
                                }
                                res.Append("<ol>");
                            }
                            else
                            {
                                // TODO, bug here, see this thing:
                                //http://ft.dk/Samling/20072/lovforslag/L64/som_fremsat.htm
                                continue;
                            }
                        }
                    }
                    res.Append("</ol>");
                    s.Text += res.ToString();
                }
            }
        }