2016-05-13 6 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, но я не знаю, как я могу сделать несколько ключ-значение пары и для того, чтобы сортировать и отображать их в a table like this:

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(); 
Смежные вопросы