在C#中创建一个字典或列表(包括HTML标签)

lov*_*iji 4 c# html-table html-parsing

A有这样的字符串:

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>";
Run Code Online (Sandbox Code Playgroud)

如何Dictionary<int, int> d = new Dictionary<int, int>();从字符串s创建 以获得相同的结果:

d.Add(11, 12);
d.Add(21, 22);
d.Add(31, 32);
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 11

您应该使用HTML Agility Pack.

例如:(已测试)

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)
              );
Run Code Online (Sandbox Code Playgroud)

如果HTML总是格式正确,您可以使用LINQ-to-XML; 代码几乎相同.