Qt工作笔记-如何正确使用QXmlStreamReader(学会利用错误提示)
生活随笔
收集整理的這篇文章主要介紹了
Qt工作笔记-如何正确使用QXmlStreamReader(学会利用错误提示)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天解析一個xml,是有問題的xml,這里模擬下
xml如下,沒有聲明名稱空間卻使用了名稱空間
<?xml version="1.0" encoding="GBK"?> <root><Node name="first Tree" text="hello"/><Node name="Tree addition" text="how are you?"/><One:a name="One a"/><One:b name="One b"/> </root>在Qt中使用QXmlStreamReader是有提示的
因此,要寫一個健壯性的程序,就不得不看官方文檔,
更具這篇文檔,寫了個有健壯性的程序
源碼如下:
main.cpp
#include <QXmlStreamReader> #include <QApplication> #include <QFile> #include <QDebug>int main(int argc, char *argv[]) {QFile file("E:\\Qt2018\\ProperUsageXMLReader\\my.xml");if(!file.open(QFile::ReadOnly|QFile::Text)){qDebug()<<"open failed!";return -1;}QXmlStreamReader reader;reader.setDevice(&file);while(!reader.atEnd()){reader.readNext();if(reader.name().toString()=="Node"){qDebug()<<"Node name: "<<reader.attributes().value("name").toString();qDebug()<<"Node text:"<<reader.attributes().value("text").toString();}/** do processing*/if(reader.hasError()){qDebug()<<"the error is "<<reader.errorString();file.close();Q_ASSERT(!"xml file has error");}}file.close();return 0; }錯誤的XML文件,或者解析失敗的XML文件,運行截圖如下:
?
如果是正確的xml文件,
xml源碼如下:
<?xml version="1.0" encoding="GBK"?> <root><Node name="first Tree" text="hello"/><Node name="Tree addition" text="how are you?"/><Other xmlns:One="namespace"><One:a name="One a"/><One:b name="One b"/></Other> </root>運行截圖如下:
總結
以上是生活随笔為你收集整理的Qt工作笔记-如何正确使用QXmlStreamReader(学会利用错误提示)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ opengl 深度缓冲区
- 下一篇: C++工作笔记-仿大佬使用枚举类型