QT 5.12解析html格式的数据

1 篇文章 0 订阅
1 篇文章 0 订阅
<html>
<p>start</p>
<ID>123456</ID>
<MGR>hello</MGR>
<NAME>zhangsan</NAME>
<p>END</p>
</html>

就简单的解析这html格式的数据
有时候我们要提取里面的元素值,就好像提取ID元素里面的123456

方法:利用QT提供的xml
(具体xml和html两种格式区别我这就不多说)
代码片段:

bool AnalysisXML::analysisdata(QByteArray arry)
{
    QString errorStr;
    int errorLine;
    int errorColumn;

    QDomDocument doc;

    if (!doc.setContent(arry,false, &errorStr, &errorLine, &errorColumn))
    {
       qDebug() << "Error: Parse error at line " << errorLine << ", "
                  << "column " << errorColumn << ": "
                  << qPrintable(errorStr) ;
        return false;
    }

    QDomElement root = doc.documentElement();
//    if (root.tagName() != "trx")
//    {
//        qDebug() << "Error: Not a trx xml" ;
//        return false;
//    }

    parseTrxMembers(root);
    return true;
}

void AnalysisXML::parseTrxMembers(const QDomElement &element)
{
    QDomNode child = element.firstChild();   //找到元素下的所有节点
    while (!child.isNull())
    {
        if (child.toElement().tagName() != "multistage")  //查找特殊节点名
        {
            qDebug()<<child.toElement().tagName()<<":"<<child.toElement().text();

        }
        else
        {
            parseDefectMembers(child.toElement());
        }
        child = child.nextSibling();  //下一个儿子(同级节点)
    }

}

void AnalysisXML::parseDefectMembers(const QDomElement &element)
{
    QDomNode child = element.firstChild();   //找到元素下的所有节点
    while (!child.isNull())
    {
        parseDefect_CodeMembers(child.toElement());
        child = child.nextSibling();  //下一个儿子(同级节点)
    }
}

void AnalysisXML::parseDefect_CodeMembers(const QDomElement &element)
{

    QDomNode child = element.firstChild();   //找到元素下的所有节点
    while (!child.isNull())
    {
        qDebug()<<child.toElement().tagName()<<":"<<child.toElement().text();
;
        child = child.nextSibling();  //下一个儿子(同级节点)
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值