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