Как я могу получить атрибут alt из TD - PullRequest
0 голосов
/ 05 апреля 2019

Мне удалось сделать так, чтобы все данные из таблицы выбирались и выбрасывались в представление DataGrid. Теперь у меня снова возникла проблема с фильтрацией одной и той же информации: красного, желтого, фиолетового, времени и имени. Эта информация, которую я нахожу интересной в этом фрагменте HTML, заголовке или Alt и в href HOST = ...:

<TD align=center><A 

      href="http://bb.intranet/cgi-bin/svcstatus.sh?HOST=RPRThostname&SERVICE=memory"><IMG 

      title=memory:yellow:13h02m border=0 alt=memory:yellow:13h02m 

      src="red%20%20Xymon%20-%20Status%20@%20Thu%20Jan%2003%20172037%202019_pliki/yellow-recent.gif" 

      width=16 height=16></A></TD>

Мой код извлекает все данные в таблицу. Специально я установил, что размер столбцов равен 23, потому что размер всей таблицы HTML,

Я бы хотел растянуть конкретные данные, как я писал выше

 HtmlAgilityPack.HtmlDocument d;
            d = new HtmlAgilityPack.HtmlDocument();
            d.LoadHtml(richTextBox1.Text);

            var query = from table in d.DocumentNode.SelectNodes("//table").Cast<HtmlNode>()
                        from row in table.SelectNodes("//tr").Cast<HtmlNode>()
                        from cell in row.SelectNodes("//td").Cast<HtmlNode>() ///Cast<HtmlNode>() .First().Attributes["title"].Value.

                        select new { Table = table.Id, CellText = cell.OuterHtml };


            foreach (var cell in query)
            {
             for (int i = 0; i < 27; i++)
            {
                this.dataGridView1.Columns.Add("col" + i.ToString(), "-");
            }

           int j = 0;
           int counter = 0;
            var values = new List<string>();
            foreach (var cell in query)
            {
                if (j == 27)
                {
                    this.dataGridView1.Rows.Add();
                    j = 0;

                    int k = 0;
                    foreach (DataGridViewCell dgcell in this.dataGridView1.Rows[counter].Cells)
                    {
                        //MessageBox.Show(values[k]);
                        dgcell.Value = values[k++];
                    }

                   counter++;
                    continue;
                }

                //DataRow r = dt.NewRow();
                // int i = 0;


                values.Add(cell.CellText);
            j++;
            }

        }
...