none
Чтение и запись данных из html таблицы в C# label RRS feed

  • Вопрос

  • Столкнулся с проблемой нужно сделать так:

    Ник:взять из таблицы

    Автоиртет:взять из таблицы

    Арена левел :взять из таблицы

    Убил гладов: взять из таблицы

    Все эти параметры нужно записать в лэйблы,но на автоматическом уровне,т.к. мы делаем запрос на сервер а он нам дает ответ в таблице код таблицы приведен ниже?

    <center>
    <table border caption="Info">
    <tr>
    <td>
    Ник
    </td>
    <td>Сумрак
    </td></tr>
    <tr>
    <td>
    Авторитет
    </td>
    <td>
    55013
    </td>
    </tr>
    <tr><td>
    Арена левел
    </td>
    <td>
     9ур
    </td>
    </tr>
    <tr>
    <td>
    Уровень чиркалы
    </td>
    <td>
    9
    </td>
    </tr>
     
    <tr>
    <td>
    Убил гладов
    </td>
    <td>
    12897
    </td>
    </tr>
     
    <tr>
    <td>
    Провел боёв
    </td>
    <td>
    124451
    </td>
    </tr>
     
    <tr>
    <td>
    Проиграл
    </td>
    <td>
    19920
    </td>
    </tr>
     
    <tr>
    <td>
    Выйграл
    </td>
    <td>
    Лень вычислять
    </td>
    </tr>
    </table>
    </center>
     
    

    1 марта 2011 г. 14:55

Ответы

  • Можно использовать регулярные выражения или Html Agility Pack для выбора значений из таблицы. Ниже пример для Html Agility Pack, для его работы нужно скачать сам пак и добавить dll в references проекта (можно еще подключить пространство имен (using HtmlAgilityPack;). Таблица которую вы привели для пример содержится в переменной html: 

          HtmlAgilityPack.HtmlDocument h = new HtmlAgilityPack.HtmlDocument();
          h.LoadHtml(html);
    
          var coll = h.DocumentNode.SelectNodes("//td");
          Dictionary<string,string> data = new Dictionary<string,string>();
    
          for (int i = 0; i < coll.Count; i+=2)
          {
            data.Add(coll[i].InnerText.Trim(), coll[i+1].InnerText.Trim());
          }
    
          foreach (var pair in data)
          {
            Console.WriteLine(pair.Key + " - " + pair.Value);
          }
    

    В data будет содержатся нужные значения, далее заполнить лейблы не составит труда, извлекая данные по ключу.

     


    Для связи [mail]
    • Помечено в качестве ответа I.Vorontsov 29 марта 2011 г. 8:10
    2 марта 2011 г. 11:49