QT5中XML的解析(QXmlStreamReader)

一:读取XML中指定数据

XML内容:

<?xml version="1.0" encoding="UTF-8"?>
<resp>
<city>北京</city>
<fengli>2级</fengli>
<shidu>21%</shidu>
<wendu>10</wendu>
......
</resp>

解析代码:
    QXmlStreamReader xml(QString(上面的内容));

    while(!xml.atEnd())
    {
        if(xml.hasError())
        {
            qDebug()<<"XML有误";
            return;
        }
        else if(xml.isStartElement()) //遇到开始标签,如<city>
        {
            if(xml.name()=="city")
            {
                today.city = xml.readElementText();
            }
            else if(xml.name()=="wendu")
            {
                today.wendu = xml.readElementText();

                xml.clear(); //读取完清理一下
                return;
            }
            else //遇到不需要的标签,如<fengli>和<shidu>
                xml.readNext();
        }
        else //遇到结束标签,<span style="font-family: Arial, Helvetica, sans-serif;">如</city></span>
            xml.readNext();
    }
    xml.clear();



二:顺序读取整个XML
一般使用判断加嵌套实现,具体可参考:Qt解析XML文件(QXmlStreamReader)

你可能感兴趣的:(xml,qt,qt5)