1

QDomDocument クラスを使用しようとして、以下の質問を投稿しました。代わりに QWebkit を使用するように勧められましたが、QWebkit で行う必要があることをどのように行うかについて非常に混乱しています。今まで使ったことがないので、ちょっと不安です。誰かアドバイスをお願いできますか?ありがとう!記録のために、関数は QByteArray を使用しており、テキストに変換すると標準の HTML ファイルになります。


元の質問:

次のように、異なるクラスの HTML ファイルにいくつかの div があります。

<div class='A'>...</div>
<div class='B'>...</div>
<div class='C'>...</div>

クラスに基づいてこれから特定の div を取得できるようにする必要がある Qt (4.7) プログラムがあります。このプログラムでは QDomDocument を使用する必要があります。そのクラスには function があることをドキュメントから知っていますが、それをクラスで機能elementById()させることはできません。IDだけです。これは作成された HTML ファイルなどではないため、クラスなのか ID なのかを制御することはできません。私が見逃しているこれを行う方法はありますか?ありがとう!

4

1 に答える 1

2

。プロ

QT += webkitwidgets

main.cpp

#include <QApplication>
#include <QDebug>
#include <QWebView>
#include <QWebFrame>
#include <QWebElement>

int main( int argc, char *argv[] ) {
    QApplication a(argc, argv);

    QString l_html( "<html><body>"
                    "<div class='A'>div with class A</div>"
                    "<div class='B'>div with class B</div>"
                    "<div class='C'>div with class C</div>"
                    "<span class='A'>span with class A</span>"
                    "</body></html>" );

    QWebView l_webView; // you can skip the QWebView if you dont want to show any widget
    l_webView.page()->mainFrame()->setHtml( l_html );
    QWebElement l_root( l_webView.page()->mainFrame()->documentElement() );
    QWebElementCollection l_elements( l_root.findAll( ".a" ) );

    foreach ( QWebElement l_e, l_elements ) {
        // do what you want here
    }

    return a.exec();
}
于 2013-12-19T20:01:58.503 に答える