Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ QWebFrame переставляет тэги в html и "обрезает" его

Автор: Lemur 20.2.2011, 20:10

Доброе время суток.
Я ньюб в C++ и Qt, прошу отнестись с пониманием. Есть html страница со сложным форматированием(например http://www.vsetv.com/schedule_package_uabase_day_2011-02-21.html). Сохраняю на винте и запихиваю в QWebFrame. Через QWebView страница выводиться нормально(ничего не отрезано). Однако если вывести содержимое с QWebFrame на QDebug() или сделать поиск тэгов(findAll), то становиться ясно что во первых хтмл сильно порезан(фактически только начало файла), во-вторых вебфрэйм самовольно расставил завершающие тэги совершенно, не там, где они находились в оригинальном хтмл. Что произошло? Можно ли с этим бороться? Мне удобно было бы искать элементы по html именно таким образом. И вопрос вдогонку, не совсем по теме: какое ограничение по выводу на экран есть у qDebug()? сколько символов? Спасибо!

    QWebView webView;
    QWebFrame *frame = webView.page()->mainFrame();    
    frame->setHtml(stringFromFile);
    qDebug() << "frame html value: " << frame->toHtml();


    QWebElement document = frame->documentElement();

    QWebElementCollection collection = document.findAll("tr");
    foreach (QWebElement paraElement, collection) {

         qDebug() << "> Element value <: " << paraElement.toOuterXml();
     }

    webView.show();

Автор: kwisp 21.2.2011, 10:18

Цитата(Lemur @ 20.2.2011, 20:10) *
Что произошло? Можно ли с этим бороться?

можно предположить что WebKit не показывает тебе документ полностью. цель этого возможно экономия ресурсов.
могу предложить опискать в файле то что тебе нужно с помощью QRegExp ...

Автор: Lemur 21.2.2011, 14:49

Цитата(kwisp @ 21.2.2011, 9:18) *
Цитата(Lemur @ 20.2.2011, 20:10) *
Что произошло? Можно ли с этим бороться?

можно предположить что WebKit не показывает тебе документ полностью. цель этого возможно экономия ресурсов.
могу предложить опискать в файле то что тебе нужно с помощью QRegExp ...


Гм...странно, для чего тогда метод фрейма toHtml() нужен. И ещё лично для меня интересный момент - почему-то когда загружаешь методом load() веб-вью какую-то страницу, она отлично отображаеться через show(), однако получить доступ к коду этой странице через toPlainText() или toHtml() я не могу.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)