Есть куча файлов html. Из этих файлов ничего не надо, кроме того что стоит в тегах href с одинаково начинающимся адресом. Т.е. html документ имеет примерно такой вид:
<html><head></head><body>
.....
ненужная часть
...
<td>
<a href="?php=text&randomText...">ТекстДляПарсинга</a>
</td>
<td align="left">1234</td>
и т.д. (аналогичные ссылки и пр. теги)
Именно так, длинный HTML-документ с этими нужными ссылками
Насчет QtXML, если можно поподробнее... какой именно класс?
Просто капнул документацию, а их там огромное множество...
Есть Несколько технологий:
SAX и DOM - руководство полностью переведено.
Есть ещё XQuery и XPath, возможно, для этой задачи могут быть удобнее, но только на английском
по-моему не получится потому что хмл очень тебователен к закрывающим тегам... можно не загрузить документ...
наверное регехпом можно попробовать.
kwisp, точно, все что меджду > < от body и не включая scripts
Спасибо, буду думать во всех направлениях, насчет регехпа думал, но так и не додумался как его применить в данном случае...
Может быть есть какие-нибудь догадки?
Спасибо за советы! Вот, кстати, пример куска хтмл файла:
<tbody>
<tr class="thead" valign="bottom">
<td rowspan="1" width="80%">Text</td>
<td align="right" width="20%">Some info:</td>
</tr> <tr class="list" bgcolor="#ffffff">
<td>
<a href="?cmd=words&page=1&inf=7423&secret=deae3a1c7690f&ps=%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B8">текст1</a>
</td>
<td align="right">5701375</td>
</tr> <tr class="list" bgcolor="#eeeeee">
<td>
<a href="?cmd=words&page=1&inf=12704&secret=d115239573deae3a1c7690f&ps=%D1%82%D0%B5%D0%BA%D1%81%D1%82">текст2</a>
</td>
<td align="right">5701027</td>
</tr> <tr class="list" bgcolor="#ffffff">
<td>
<a href="?cmd=words&page=1&inf=125704&secret=67c115239573deae3a1c7690f&ps=%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D0%BF%D0%B5%D1%81%D0%BD%D0%B8">текст3</a>
</td>
<td align="right">2804612</td>
</tr> <tr class="tlist" bgcolor="#eeeeee">
........
Сделал регулярку, как посоветовал rcdimon. Получилось вроде этого:
QRegExp rx("<a.+href.*=.*\"(.+?)\">(.+?)</a.*>");
while ((pos = rx.indexIn(Page, pos)) != -1) {
parserList->append( rx.cap(1) );
pos += rx.matchedLength();
}
Блин, я где-то нарывался на html парсер на основе бизона.
Вот бы его в либу оформить, можно было бы просто подключать к проекту.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)