???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("文件打開失敗");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章