create a dictionary or list from string(HTML tag included) in C#

c#, html-parsing, html-table

Solution

You should use the HTML Agility Pack.

For example: (Tested)

var doc = new HtmlDocument();
doc.LoadHtml(s);
var dict = doc.DocumentNode.Descendants("tr")
              .ToDictionary(
                  tr => int.Parse(tr.Descendants("td").First().InnerText),
                  tr => int.Parse(tr.Descendants("td").Last().InnerText)
              );

If the HTML will always be well-formed, you can use LINQ-to-XML; the code would be almost identical.

Problem

A have a string like this: ``` string s = @" <tr> <td>11</td><td>12</td> </tr> <tr> <td>21</td><td>22</td> </tr> <tr> <td>31</td><td>32</td> </tr>"; ``` How to create `Dictionary<int, int> d = new Dictionary<int, int>();` from string s to get same result as : ``` d.Add(11, 12); d.Add(21, 22); d.Add(31, 32); ```

Original source

Related problems