
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.238.189.240] |
![]() |
|
Сообщ.
#1
,
|
|
|
В тексте странички есть такая штучка <input ....name="name" value="123571523571">. Есть ли какие-нибудь стандартные средства, чтобы разложить весь html-source по полочкам и без лишних телодвижений выудить оттуда name=123571523571?
|
Сообщ.
#2
,
|
|
|
Mizantrop, есть XML парсера которые позволяют выдернуть нужный тебе node
|
Сообщ.
#3
,
|
|
|
В QT есть такие классы?
Добавлено Ага. Нашел. Пока что буду курить книгу) |
Сообщ.
#4
,
|
|
|
Можно ли применить классы QT по работе с XML к переменной типа QString?
|
Сообщ.
#5
,
|
|
|
Если нужно просто вытащить оттуда "name" и "123571523571", то можно составить регулярное выражение.
|
Сообщ.
#6
,
|
|
|
Значит, раскрываю проблему получше. Посылаю гет-запрос и получаю ответ сервер(собственно текст страницы). Т.е. таблицы(много) и т.д. Этот самый <input .... name='...' value='....'> находится примерно в такой конструкции <tr><td><div></div></td></tr>
Если приведете регулярное выражение, то буду очень признателен. ![]() ![]() <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> |
Сообщ.
#7
,
|
|
|
Примерно такое:
![]() ![]() <input\s+(?:[a-z]*\s*=\s*(?:'[\']*'|"[\"]*"))\s+name\s*=\s*('[\']*'|"[\"]*")\s+(?:[a-z]*\s*=\s*(?:'[\']*'|"[\"]*"))\s+value\s*=\s*('[\']*'|"[\"]*") Соответственно, первая группа будет соответствовать name, вторая — value. |
Сообщ.
#8
,
|
|
|
Спасибо)С меня плюсик)(только почему-то не могу его поставить)
|
Сообщ.
#9
,
|
|
|
Через strstr() из HTML можно выдернуть всё, что угодно. Пример возможной не идеальной реализации:
![]() ![]() 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] значение } } Айс? или не айс ![]() |
![]() |
Сообщ.
#10
,
|
|
Лучше не использовать qt'шный xml движок для парсинга html. Это можно только в том случае, если есть 100% уверенность в том, что присланный сервером документ является строгим xml документом без каких-либо нарушений(другими словами это должен быть xhtml документ).
|
Сообщ.
#11
,
|
|
|
Не приложу ума, как адаптировать код MinLexx, к работе с QT. Намекните
|
Сообщ.
#12
,
|
|
|
Проблема решена
|