На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Парсинг странички , посылаю запрос, получаю ответ сервера в виде html-кода
    В тексте странички есть такая штучка <input ....name="name" value="123571523571">. Есть ли какие-нибудь стандартные средства, чтобы разложить весь html-source по полочкам и без лишних телодвижений выудить оттуда name=123571523571?
      Mizantrop, есть XML парсера которые позволяют выдернуть нужный тебе node
        В QT есть такие классы?

        Добавлено
        Ага. Нашел. Пока что буду курить книгу)
          Можно ли применить классы QT по работе с XML к переменной типа QString?
            Если нужно просто вытащить оттуда "name" и "123571523571", то можно составить регулярное выражение.
              Значит, раскрываю проблему получше. Посылаю гет-запрос и получаю ответ сервер(собственно текст страницы). Т.е. таблицы(много) и т.д. Этот самый <input .... name='...' value='....'> находится примерно в такой конструкции <tr><td><div></div></td></tr>

              Если приведете регулярное выражение, то буду очень признателен.


              ExpandedWrap disabled
                 
                 
                <table id="dialog" border="0" cellspacing="0" width="460">
                  <tbody>
                   <tr>
                    <td class="dialog">
                     <h4>Новое сообщение</h4>
                     <div id="messageFields">
                      <form method="POST" action="mail.php" name="postMessage" id="postMessage">
                      <input type="hidden" id="secure" name="secure" value="2dc4e1292f18e67a5e924612931da421" />
                      <input type="hidden" id="photo" name="photo" value="ad49e1f" />
                      <input type="hidden" id="to_id" name="to_id" value="1817900" />
                      <input type="hidden" id="to_reply" name="to_reply" value="65570935" />
                      <input type="hidden" id="act" name="act" value="sent" />
                      <table class="formTable" border="0" cellspacing="0">
                 
                       <tr>
                        <td rowspan="5" style="width:68px; vertical-align:top">
                         <a href="profile.php?id=1817900" id="to_url">
                          <img src='gdfgdfgdfgdgf' class='messageImage' id="to_image">
                         </a>
                        </td>
                       </tr>
                 
                       <tr class="tallRow">
                        <td class="label">От кого:</td>
                        <td><a href="profile.php?id=592933">gfhfghhgghf</a></td>
                       </tr>
                 
                       <tr class="tallRow">
                        <td class="label">Кому:</td>
                        <td><a href="profile.php?id=1817900" >fgfhhghfhgf</a></td>
                       </tr>
                 
                       <tr>
                        <td class="label">Тема:</td>
                        <td>
                         <input class='inputText' autocomplete='off' type="text" name='title' style='width: 250px;' value="Re(8):  ... " size=35>
                        </td>
                       </tr>
                 
                       <tr class="tallRow">
                        <td class="label">Сообщение:</td>
                        <td>
                         <textarea name="message" rows="6" style="width: 250px;"></textarea><br/>
                        </td>
                       </tr>
                      </table>
              Сообщение отредактировано: Mizantrop -
                Примерно такое:
                ExpandedWrap disabled
                  <input\s+(?:[a-z]*\s*=\s*(?:'[\']*'|"[\"]*"))\s+name\s*=\s*('[\']*'|"[\"]*")\s+(?:[a-z]*\s*=\s*(?:'[\']*'|"[\"]*"))\s+value\s*=\s*('[\']*'|"[\"]*")

                Соответственно, первая группа будет соответствовать name, вторая — value.
                  Спасибо)С меня плюсик)(только почему-то не могу его поставить)
                  Сообщение отредактировано: Mizantrop -
                    Через strstr() из HTML можно выдернуть всё, что угодно. Пример возможной не идеальной реализации:
                    ExpandedWrap disabled
                      char *html = "<html>....<input name=\"var_name\" value=\"var_value\" />..........</html>"; // тут весь HTML
                      char *namep = strstr( html, "name=\"var_name\"" ); // найти переменную
                      if( namep )
                      {
                          char *valp = strstr( namep, "value=\"" ); // найти её значение
                          if( valp )
                          {
                              char value[256] = {0};
                              char *cvp = value;
                              valp += strlen( "value=\"" );
                              while( (*valp) != '\"' ) *cvp++ = *valp++; // это почти strcpy()
                              *cvp = 0; // теперь в char value[256] значение
                          }
                      }

                    Айс? или не айс :)
                      Лучше не использовать qt'шный xml движок для парсинга html. Это можно только в том случае, если есть 100% уверенность в том, что присланный сервером документ является строгим xml документом без каких-либо нарушений(другими словами это должен быть xhtml документ).
                        Не приложу ума, как адаптировать код MinLexx, к работе с QT. Намекните
                          Проблема решена
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0687 ]   [ 16 queries used ]   [ Generated: 24.04.24, 12:42 GMT ]