2016-05-13 34 views
0

我對C#相當陌生,我想解析一個HTML表格並根據第一列對行進行排序。下面是一個示例表: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 
+0

嘗試從https://msdn.microsoft.com/en-us/library/mt654013.aspx學習 –

+0

你可以使用[解釋](HTTPS: //msdn.microsoft.com/en-us/library/xfhwa508.aspx) – Pikoh

回答

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();