Exemplo n.º 1
0
        private static void FillDataTable(DataTable obj,
                                          HtmlNode table)
        {
#if NET20
            var body = 0 != IEnumerableExtensionMethods.Count(table.Descendants("thead"))
                           ? IEnumerableExtensionMethods.First(table.Descendants("tbody"))
                           : table;
            var rows = IEnumerableExtensionMethods.ToList(body.Descendants("tr"));
#else
            var body = table.Descendants("thead").Any()
                           ? table.Descendants("tbody").First()
                           : table;
            var rows = body.Descendants("tr").ToList();
#endif
            if (HasVerticalColumns(table))
            {
                AddVerticalDataColumns(obj, body);
                AddVerticalDataRows(obj, body);
                return;
            }

            var columns = Columns(table);
            for (var i = 0; i < columns.Count; i++)
            {
#if NET20 || NET35
                var name = string.IsNullOrEmpty(columns[i])
#else
                var name = string.IsNullOrWhiteSpace(columns[i])
#endif
                               ? XmlConvert.ToString(i)
                               : columns[i];
                obj.Columns.Add(name, typeof(HtmlNode));
            }

            AddNormalDataRows(obj, rows);
        }