2016-05-01 1 views
0

Я начинаю свой код:C# - Получить значение тра в HTML

 private int GetSizeOf(IEnumerable<HtmlNode> tables) 
     { 
      int size = 0; 
      var infos = tables.ElementAt(0).Elements("td"); 
      foreach (var info in infos) 
       size++; 
      return (size); 
     } 

     private void saveButton_Click(object sender, EventArgs e) 
     { 
      var doc = new HtmlAgilityPack.HtmlDocument(); 
      doc.Load(tooltip.GetToolTip(labelFile)); 
      var element = doc.DocumentNode 
          .Element("html") 
          .Element("body") 
          .Element("div") 
          .Element("center"); 
      var tables = element.Elements("table").ElementAt(2).Elements("tr"); 
      arrayInfos = new string[GetSizeOf(tables), tables.Count()]; 
     } 

Я хотел бы получить значение таблицы (тд) в HTML, я также хотел бы хранить все значения в многомерном массиве (display_name (0.x), псевдо (1.x), возраст (2.x), подтвердил (3.x), администратор (4.x))
HTML-код выглядеть любит это:

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="80%"> 
<tr> 
    <td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">display_name</font></b></td> 
    <td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">pseudo</font></b></td> 
    <td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">age</font></b></td> 
    <td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">confirmed</font></b></td> 
    <td nowrap bgcolor="#FFFFCE"><b><font color="#DC883D">admin</font></b></td> 
</tr> 
<tr> 
    <td bgcolor="#FFF7F2">Example</td> 
    <td bgcolor="#FFF7F2">Example</td> 
    <td bgcolor="#FFF7F2">20</td> 
    <td bgcolor="#FFF7F2">1</td> 
    <td bgcolor="#FFF7F2">0</td> 
</tr> 

Как я могу это сделать?

+0

Не могли бы вы объяснить, что происходит с вашим кодом? –

+0

http://stackoverflow.com/questions/655603/html-agility-pack-parsing-tables –

ответ

0
var doc = new HtmlAgilityPack.HtmlDocument(); 
doc.Load(...); 

var element = doc.DocumentNode 
    .Element("html") 
    .Element("body") 
    .Element("div") 
    .Element("center"); 

var trs = element.Element("table").Elements("tr").ToArray(); 
var array = new string[trs.Length, trs[0].Elements("td").Count()]; 

for (int row = 0; row < trs.Length; row++) 
{ 
    var tds = trs[row].Elements("td").ToArray(); 

    for (int col = 0; col < tds.Length; col++) 
    { 
     array[row, col] = tds[col].InnerText; 
    } 
} 
Смежные вопросы