我在下面发布了这个问题,试图使用QDomDocument类。有人建议我改用QWebkit,但我很困惑如何使用QWebkit。我以前从未用过它,所以我对它不太确定。有人能给我提点建议吗?谢谢!对于记录,函数使用的是一个QByteArray,当转换为文本时,它是一个标准的HTML。
原题:
在HTML文件中有几个div具有不同的类,如下所示:
<div class='A'>...</div>
<div class='B'>...</div>
<div class='C'>...</div>我有一个Qt (4.7)程序,在这个程序中,我需要能够根据类得到一个特定的div。我需要在这个程序中使用QDomDocument。从文档中我知道这个类有一个函数elementById(),但是我不能让它处理类,只是ids。这不是一个HTML文件,是一个已创建的文件,所以我无法控制它是类还是id。我错过了什么方法吗?谢谢!
发布于 2013-12-19 20:01:58
.pro
QT += webkitwidgetsmain.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();
}https://stackoverflow.com/questions/20690202
复制相似问题