???Qt for Android解析AndroidManifest.xml

???Qt for Android解析AndroidManifest.xml

我本来想的是,解析AndroidManifest.xml里面的version name,然后显示在软件版本号的地方。每次修改版本号就可以直接改xml文件就行,不用在软件版本号的地方再手动改。初衷是这样。但是我根据网上解析xml的方法去弄,文件都没有打开……文件路径不对吗?还是……
在这里插入图片描述

代码如下:

void readDocumentElement()
{
    QFile file("./android/AndroidManifest.xml");
    if (file.open(QFile::ReadOnly | QFile::Text))
    {  // 以只写模式打开文件
        qDebug()<<QString::fromLocal8Bit("********** 文件打开成功 ********** ");
        QXmlStreamReader reader(&file);

        // 解析 XML,直到结束
        while (!reader.atEnd())
        {
            // 读取下一个元素
            QXmlStreamReader::TokenType nType = reader.readNext();

            switch (nType)
            {
            case QXmlStreamReader::StartDocument: {  // 开始文档
                qDebug() << QString::fromLocal8Bit("********** 开始文档(XML 声明) ********** ");
                // XML 声明
                QString strVersion = reader.documentVersion().toString();
                QString strEncoding = reader.documentEncoding().toString();
                bool bAlone = reader.isStandaloneDocument();
                qDebug() << QString::fromLocal8Bit("版本:%1  编码:%2  Standalone:%3")
                            .arg(strVersion).arg(strEncoding).arg(bAlone) << "\r\n";
                break;
            }
            case QXmlStreamReader::Comment: {  // 注释
                break;
            }
            case QXmlStreamReader::ProcessingInstruction: {  // 处理指令
                break;
            }
            case QXmlStreamReader::DTD: {   // DTD
                break;
            }
            case QXmlStreamReader::StartElement: {  // 开始元素
                break;
            }
            case QXmlStreamReader::EndDocument: {  // 结束文档
                break;
            }
            default:
                break;
            }
        }

        if (reader.hasError()) {  // 解析出错
            //  qDebug() << QString::fromLocal8Bit("错误信息:%1  行号:%2  列号:%3  字符位移:%4").arg(reader.errorString()).arg(reader.lineNumber()).arg(reader.columnNumber()).arg(reader.characterOffset());
        }

        file.close();  // 关闭文件
    }
    else{
        qDebug()<< QString::fromLocal8Bit("文件打开失败");
    }
}
发布了32 篇原创文章 · 获赞 4 · 访问量 3425

猜你喜欢

转载自blog.csdn.net/qq_35241071/article/details/100916642