我需要编写 Qt/C++ 代码来提取所有 p 标签,以将每个 p 标签写入 .txt 文件,例如,如果我有以下 HTML 页面:
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
<p>My second paragraph.</p>
</body>
</html>
我需要代码来创建 2 个 .txt 文件,第一个文件将包含我的第一段。第二段将包括我的第二段。
我的问题是如何解析html并获取标签之间的txt,这里是我的代码
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QEventLoop loop;
QNetworkRequest request;
request.setUrl(QUrl("http://en.wikipedia.org/wiki/Cars"));
QNetworkAccessManager* networkMgr = new QNetworkAccessManager();
QNetworkReply* reply = networkMgr->get(request);
QObject::connect(reply, SIGNAL(finished()),&loop,SLOT(quit()));
loop.exec();
QFile file ("/Users/David/Desktop/text123.txt");
file.open(QIODevice::WriteOnly);
file.write(reply->readAll());
delete reply;
return a.exec();
}
非常感谢你的帮助
- 项目清单
您可以使用 QRegularExpression 来实现此目的,请参阅下面的示例。
QString txt = reply->readAll();
QRegularExpression regex("< *[pP] *>(.*)< *\\/ *[pP] *>");
QRegularExpressionMatchIterator it = regex.globalMatch(txt);
int i = 0;
while(it.hasNext())
{
QRegularExpressionMatch match = it.next();
QString filename = QString("e:/folder/file%1.txt").arg(i);
QFile file (filename);
file.open(QIODevice::WriteOnly);
file.write(match.captured(1).toUtf8());
file.close();
++i;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)