【问题标题】:c# - Parsing Html tables and sorting the rowsc# - 解析 Html 表格并对行进行排序
【发布时间】:2016-09-09 11:23:45
【问题描述】:

我是 C# 的新手,我想解析一个 HTML 表并根据第一列对行进行排序。下面是一个示例表:

<table>
    <tr>
       <td> Xyz </td>
       <td> 123 </td>
    </tr>
    <tr>
       <td> Abc </td>
       <td> 789 </td>
    </tr>
    <tr>
       <td> Ghi </td>
       <td> 345 </td>
    </tr>
</table>

我已经能够使用 HtmlAgilityPack 获取值,但我不确定如何制作一个有点键值对的 和 以便对它们进行排序并显示在这样的表格中:

Abc 789
Ghi 345
Xyz 123

【问题讨论】:

标签: c#


【解决方案1】:

我会使用 HtmlAgilityPack 来解析 HTML。然后您可以使用 LINQ 对行进行排序:

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
HtmlNode firstTable = doc.DocumentNode.SelectSingleNode("//table");
var orderedCellTexts = firstTable.Descendants("tr")
    .Select(row => row.SelectNodes("th|td").Take(2).ToArray())
    .Where(cellArr => cellArr.Length == 2)
    .Select(cellArr => new { Cell1 = cellArr[0].InnerText, Cell2 = cellArr[1].InnerText })
    .OrderBy(x => x.Cell1)
    .ToList();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-27
    • 2021-12-21
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多