使用MSVC 2015在Qt5.8中使用QXmlStreamReader解析HTML

使用MSVC 2015在Qt5.8中使用QXmlStreamReader解析HTML,qt,html-parsing,qxmlstreamreader,Qt,Html Parsing,Qxmlstreamreader,我试图从Qt中的网页中获取一些数据。因为我想使用QXmlStreamReader,但是我收到了一些网页的错误消息 例如:XML解析错误“开始和结束标记不匹配。”at 顾名思义,QXmlStreamReader用于解析XML。HTML不是基于XML的,因此无法使用QXmlStreamReader解析 也就是说,如果您可以将HTML转换为,您将能够使用QXmlStreamReader解析它。但是,Qt没有执行此转换的内置方法。可以使用第三方库(如.)将任意HTML转换为XHTML,有没有内置的方法可

我试图从Qt中的网页中获取一些数据。因为我想使用
QXmlStreamReader
,但是我收到了一些网页的错误消息

例如:
XML解析错误“开始和结束标记不匹配。”
at


顾名思义,
QXmlStreamReader
用于解析XML。HTML不是基于XML的,因此无法使用
QXmlStreamReader
解析


也就是说,如果您可以将HTML转换为,您将能够使用
QXmlStreamReader
解析它。但是,Qt没有执行此转换的内置方法。可以使用第三方库(如.

)将任意HTML转换为XHTML,有没有内置的方法可以用Qt解析HTML?我想我可以使用
QXmlStreamReader
,因为线程中有答案。不,Qt没有内置的HTML解析器。为了解释为什么他们在QtWebEngine中删除了它,.Hm我在QWebEngine中找不到任何关于旧HTML解析器的信息。我想我会锁定第三方库。
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.de/?gfe_rd=cr&amp;ei=toP_WMrVKoHKXuvxnsAO">here</A>.
</BODY></HTML>
webpage = new QXmlStreamReader(data);

//emit got_webpage(&QString(data));

QStringList test;

while (!webpage->atEnd() && !webpage->hasError())
{
    QXmlStreamReader::TokenType token = webpage->readNext();

    if (token == QXmlStreamReader::StartDocument)
        continue;

    if (token == QXmlStreamReader::StartElement)
    {
        test << webpage->name().toString();
        /*if (webpage->name() == "H1")
        {
            emit got_webpage(webpage)
        }*/
    }
}

emit got_webpage(&test.join("\n"));

if (webpage->hasError())
{
    // TODO: Error handling...
    qDebug() << "XML Parse Error " << webpage->errorString();
}

webpage->clear();
delete webpage;