Как извлечь данные из 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++;
Вот результат, который я получаю от этого кода:
а исходная таблица выглядит так:
и результат, который я хочу, должен иметь пробелы между столбцами:
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);
Первая строка на сайте: