Qt html parsing не находит никаких тегов - PullRequest
1 голос
/ 12 марта 2012

Я пишу приложение для сканирования.Где-то в коде, который я получил:

//normally the HTML is obtained from web with QNetworkAccessManager & QNetworkReply:
//QString htmlCode = this->reply->readAll();  

//exemplary test HTML
QString htmlCode =QString("<html><body><a href=\'foo.bar\'>test1</a><h2>test2<h2><a href=\"bar.foo  \">test3</a></body></html>"); 
QWebPage page;
QWebFrame * frame = page.mainFrame(); //->setHtml(htmlCode);
frame->setHtml(htmlCode);
QWebElement document = frame->documentElement();
QWebElementCollection links = document.findAll("a");
foreach (QWebElement e, links) {
   qDebug() << "exemplary link:" << e.toPlainText();
}

Я действительно понимаю, что здесь были миллионы тем о разборе html в qt, но я понятия не имею, что здесь не так ...

1 Ответ

1 голос
/ 12 марта 2012

Ммм ... Я не уверен, что setHtml() работает полностью синхронно, т.е. я думаю, что содержимое кадра в это время не полностью анализируется, и, следовательно, содержимое DOM еще не доступно.

Выпопробуйте подключиться к void QWebFrame::loadFinished ( bool ok ) и выполнить сканирование DOM там.

...