Как извлечь данные из HtmlTable на C# и расположить в ряд?

Я хочу извлекать данные из HTMLTable построчно. Но у меня проблемы с разделением столбцов в строках. Код, который я использую ниже, дает мне каждую ячейку в одной строке. Но я хочу, чтобы каждая строка была в одной строке, а затем в другой. Как мне это сделать?

HtmlNode table = doc.DocumentNode.SelectSingleNode("//table[" + tableCounter + "]");
foreach (var cell in table.SelectNodes(".//tr/td"))
{

    string someVariable = cell.InnerText;
    ReportFileWriter(someVariable);

}
tableCounter++;

Вот результат, который я получаю от этого кода:

Текущий выход

а исходная таблица выглядит так:

Исходная таблица HTML

и результат, который я хочу, должен иметь пробелы между столбцами:

Желаемый результат

1 ответ

Решение

Поскольку я не знаю ваш конкретный веб-сайт, я использовал следующий код для анализа

html таблица.

Вам необходимо установить Nuget -> HtmlAgilityPack. Код:

            WebClient webClient = new WebClient();
            string page = webClient.DownloadString("http://www.mufap.com.pk/payout-report.php?tab=01");

            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(page);

            List<List<string>> table = doc.DocumentNode.SelectSingleNode("//table[@class='mydata']")
                        .Descendants("tr")
                        .Skip(1)
                        .Where(tr => tr.Elements("td").Count() > 1)
                        .Select(tr => tr.Elements("td").Select(td => td.InnerText.Trim()).ToList())
                        .ToList();
             string result = string.Empty;
        foreach (var item in table[0])
        {
            result = result + "        " + item;
        }
        Console.WriteLine(result);

Первая строка на сайте:

В результате вы получите:

Другие вопросы по тегам