C#如何从HtmlTable中提取数据并排列成一行?

How to extract data from HtmlTable in C# and arrange in a row?

我想从 HTMLTable 中逐行提取数据。但是我在分隔行中的列时遇到了问题。我在下面使用的代码在一行中为我提供了每个单元格。但我希望每一行都在一行中,然后是另一行。我该怎么做?

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

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

}
tableCounter++;

这是我从这段代码得到的输出:

The Current Output

而原来的table是这样的:

The Original Html Table

我想要的输出是在列之间有空格:

The Desired Output

由于不知道你的具体网站,所以我用下面的代码解析了

html table.

您需要安装 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);

网站第一行:

您将得到的结果: